Destacado

The 20c – Episodio 1 – CPU 6502

Introducción 

Vamos a empezar esta serie con una descripción del CPU 6502, estudiando para qué sirve cada patita de este chip (que básicamente es el pin out) y cómo funciona su arquitectura interna. Vamos a estudiar que registros tiene y para qué sirven. Luego vamos a seguir contando cómo recrear esta placa PCB desde cero y terminaremos con un experimento que nos permitirá ver nuestra primera instrucción del 6502 ejecutándose.

Descripción general del CPU 6502

Un CPU es la unidad central de procesamiento donde se ordena lo que sucede dentro de una computadora y se realizan típicamente los cálculos matemáticos y  el manejo del direccionamiento de la computadora.

El CPU 6502 fue creado por Chuck Peddle y Bill Mensh de MOS Technologies y fue muy utilizado en el final de los años 70 y principios de los 80. Esta familia de CPUs se utilizó en la Apple 1, la Apple 2 como 6502, en la Commodore 64 en su variante 6510 y en el Atari VCS en su variante 6507.

El 6502 todavía sigue siendo muy utilizado teniendo versiones actuales de los fabricantes USM y WDC siendo la versión actual la 65C02 la cuál agrega algunas instrucciones extras de assembler y baja mucho el consumo eléctrico.

Pinout CPU 6502

Este chip posee un formato DIP 40 (dual in-line package) con las siguientes funciones en sus pines o patitas.

VPB (OUTPUT) La B significa Bar o Barra para que este pin se active el voltaje tiene que ser Low o 0v. Este pin sirve para indicar que se está accediendo a una dirección a través de un vector durante una interrupción. Solo está en la versión de WDC del chip 6502 en los otros fabricantes es sólo un GROUND adicional. Con la marca WDC se puede dejar desconectado con las demás marcas se debe conectar a ground.

RDY (INPUT) El pin ready se utiliza para decirle al microprocesador que tiene que frenar y mantener al mismo en el estado actual, congelado, refrescando todos los registros y sin perder ningún dato. Para activarlo y que frene el pin espera un estado low o 0 Volts. Por ejemplo al recibir un estado Low (0 volts) en el pin todas las líneas de output van a mantener los valores de corriente que tenían mostrando qué dirección estaban buscando. Es ideal para hacer un estudio de instrucción por instrucción del chip.

PHI1 o ɸ1 (OUTPUT) Pin de Salida de Reloj, el mismo es una salida de reloj para conectar a otros dispositivos. El PHI1 es típicamente la señal del PHI2 pero invertida.

IRQB (INPUT) Pin de interrupción. Al conectar este pin a 0V, si las interrupciones están habilitadas, el procesador guardará el contenido de los registros actuales y buscará en las posiciones de memoria de vector FFFE y FFFF donde está otra posición de memoria que contiene  la primera instrucción a ejecutar para atender a esta interrupción.

MLB (OUTPUT) El pin de Memory lock se usa para mantener la integridad de las instrucciones Read-Modify-Write en un sistema multiprocesador. Cuando presenta un valor Low o 0 volts indica que algún otro circuito debe arbitrar el ciclo del bus. Es un pin de Output

NMIB (INPUT) Pin de interrupción no enmascarable. Al conectar este pin a 0V el procesador guardará el contenido de los registros actuales y buscará en las posiciones de memoria de vector FFFA y FFFB donde está otra posición de memoria que contiene la primera instrucción a ejecutar para atender a esta interrupción. Este tipo de interrupción es incondicional y siempre será honrada.

SYNC (OUTPUT) Pin de sincronía El ciclo del procesador donde trae el código de operación (OpCode) se indican con el pin SYNC en high. Cuando el procesador busca un código de operación el pin queda en high y queda high por todo el resto del ciclo. Vamos a estudiarlo al diseñar un programa que interprete cuando en el bus de datos se representa una instrucción.

VDD o VCC (INPUT) Pin de Energia. El procesador típicamente trabaja con +5v.

AB0 a AB15 (OUTPUT)  Pines del Bus de Direccionamiento. Son pines unidireccionales en los cuáles el procesador va a escribir las direcciones de los dispositivos a los cuales comunicarse (memorias, otros chip en la placa, registros de I/O, etc). Al ser un bus de 16 bits direcciona hasta 65536 bytes o desde $0000 hasta $FFFF. 

VSS (INPUT) Pin de Ground, este pin se conecta al common ground del diseño.

DB0 a DB7 (INPUT/OUTPUT) Pines del Bus de datos, Este es un bus bidireccional que permite recibir y escribir datos junto con el bit de R/W a memorias y registros de I/O.

R/W (OUTPUT) Pin de Lectura/Escritura. Este pin indica si el procesador está realizando una lectura o una escritura. Cuando se encuentra en 1 o en estado High el procesador está realizando una lectura cuando está en 0 o estado Low una escritura.

NC  No Connect, este es un pin que no se debe conectar ya que no está conectado a nada dentro del procesador. No se utiliza

BE (INPUT) Pin de Bus Enable, cuando este pin esta High o +5v los pines de address, data y RW están activos, cuando está low o 0v quedan con impedancia alta sacando al procesador del bus.

PHI2 (INPUT) Pin de entrada de Reloj, Este pin permite conectar un reloj externo al procesador para sincronizarse con otros dispositivos. Es el pin que vamos a utilizar en nuestros desarrollos para conectar un reloj externo.

SOB (INPUT) Pin de Set Overflow. Este pin cuando recibe un cambio de high a low prende el bit de Overflow en el Status Register del procesador (bit 6). No se usó mucho en el pasado y no se recomienda su uso.

PHI2O (OUTPUT) Pin de Salida de Reloj, el mismos es una salida de reloj para conectar a otros dispositivos con la misma onda que el reloj que recibe en PHI2.

RESB (INPUT) Pin de reset, este pin sirve para realizar un reset del procesador cuando se conecte a 0v. El reset tomará 7 ciclos de reloj y buscará en las posiciones de memoria FFFC y FFFD donde está el vector (otra posición de memoria) que posee la primera instrucción a ejecutar. El reset debe ser mantenido en 0v por lo menos durante dos ciclos de reloj para que sea reconocido.

Recomendaciones Generales de conexión

Se recomienda que los pines RDY IRQ NMI SOB BE estén conectados a +5v a través de una resistencia de 1K.

El pin VP deberá estar conectado a 0v a través de una resistencia de 1K, en modelos no Western Design Center este pin es sólo un GROUND.

Descripción de Funcionamiento del CPU 6502

Arquitectura

Es un procesador de 8 bits ya que todas sus instrucciones en código máquina pueden referenciarse utilizando 8 bits. La arquitectura interna está dividida en dos partes una sección con los registros y otra con las operaciones de control, las señales que provocan transferencias de datos están en la sección de control.

En el diagrama podemos ver que la señal de reset RESB entra a la caja de Interrupt Logic y de Instruction Decode esto es así por qué un reset no es más que una instrucción BRK (código binario 0000 0000) o $00 cargado desde el hardware.

Set de instrucciones

El código máquina del 6502 posee instrucciones que pueden operar sin argumentos, con un sólo argumento explícito y con dos argumentos. 

Agrego algunas instrucciones extras del modelo 65C02 (las marcadas con punto en la siguiente tabla) que NO recomiendo usar para poder mantener compatibilidad con toda la familia del 650X como ser el 6510 y el 6507, ahorran algunos pasos al no tener, por ejemplo, que pasar por el acumulador para guardar el registro X en el stack con la instrucción PHX. 

El 65C02 es una versión más moderna del MOS 6502 siendo una ventaja el ser fully static por lo que se puede parar el clock y los registros no pierden sus valores.

Velocidad de Reloj

El procesador 6502 original soporta una velocidad de reloj de hasta 1Mhz, con versiones modernas soportando mayores velocidades.

Registros

La cantidad de registros y la forma de accederlos se mantienen para toda la familia, estos son los familiares A, X e Y, el Status Register y el Stack Pointer los 5 de 8 bits y el Program Counter de 16 bits donde tendremos las direcciones de memoria de la siguiente instrucción en nuestro programa.

Modos de direccionamiento

El 6502 posee diferentes modos de direccionamiento pudiendo cargar datos directamente a memoria, o un número literal al acumulador, o en forma indexada datos y hasta aplicar funciones que trabajan con el acumulador sin tocar memoria.

Bus de Direccionamiento y Bus de Datos

El procesador posee 16 líneas de direccionamiento (pines A0 a A15) pudiendo manejar entre memoria y registros de I/O hasta 64Kb (2ˆ16 = 65536 bytes) y 8 líneas de datos (pines D0 a D7) para poder mover información de hasta 1 byte por vez.

Circuito de la Placa CPU 6502 de la 20c

El siguiente gráfico muestra el circuito que explica el funcionamiento de la placa CPU 6502.

El circuito posee los siguientes elementos:

SOCKET CPU 6502

El cual está representado físicamente como un socket DIP-40 de 40 pines, a cada uno de estos pines se le conectó un Netlist representando cada una de las funciones de estos pines por ejemplo el netlist A0 representa el pin A0 que estará conectado a todos los elementos que tenga que estar conectados con la línea o trace del address 0. 

Tiene conectado los netlists de A0 a A15, D0 a D7 y todos los netlist de EXPANSION BUS

HEADER ADDRESS

Este es un header hembra de 16 pines el cuál se usa para conectar el address bus, el mismo tiene conectados 16 netlist (o conexiones entre varios pines que tienen la misma información). Estos netlist corresponden a los pines A0 hasta A15. 

Tenemos dos de estos conectores para poder tener la información en la parte superior e inferior de la placa y realizar interconexiones con otras placas.

HEADER DATA

Este es un header hembra de 8 pines el cuál se usa para conectar el data bus, el mismo tiene conectados 8 netlist (o conexiones entre varios pines que tienen la misma información). Estos netlist corresponden a los pines D0 hasta D7.

Tenemos dos de estos conectores para poder tener la información en la parte superior e inferior de la placa y realizar interconexiones con otras placas.

HEADER EXPANSION

Este es un header hembra de 16 pines el cuál se usa para conectar el address bus, el mismo tiene conectados 16 netlist (o conexiones entre varios pines que tienen la misma información). Estos netlist corresponden a algunos netlist conectados directamente a pines del CPU 6502 como ser:

RST, CLOCK, RW, PHI2_OUT, RDY, IRQ, NMI, PHI1_OUT, ML, SYNC, SO, BE, VP 

Y otros que nos permiten pasar información de otras placas si quisiéramos usando los mismos de expansión con otras señales a elección:

E13, E14 y E15

Tenemos dos de estos conectores para poder tener la información en la parte superior e inferior de la placa y realizar interconexiones con otras placas.

HEADER POWER y GROUND

Este header posee dos pines y están conectados a las capas de 5V y de GROUND respectivamente. Tenemos cuatro de estos conectores, uno en cada esquina de la placa.

También tenemos headers de 5V y de GROUND por 8 pines cada uno para poder conectar distintos pines del 6502 que necesitan estar en valores digitales de 0 o 1 y no pueden estar flotando. Están conectados a las capas de 5V y de GROUND respectivamente. Tenemos dos de estos conectores de 5v y dos de GROUND dándonos un total de 16 pines para cada valor. Siempre se recomienda conectarlo a los pines correspondientes del CPU con resistencias de al menos 1K ohm,

CIRCUITO RESET

El mismo consiste en una resistencia conectada a +5v y al botón reset que mantiene el mismo en el valor digital 1. Cuando se pulsa el botón de reset el mismo al estar conectado al pin de reset del 6502 y a GROUND 0v pasa el valor digital 0 al cpu y este comienza el ciclo de reset.

CAPACITOR

Tenemos un capacitor de 0.1 microFaradios para que cuando el CPU arranca pueda disponer del pico extra de energía que necesita

AGUJEROS para TORNILLOS

Para poder fijar nuestra placa a distintos lugares la misma cuenta con 6 agujeros para tornillos de 3mm o M3.

NETLIST

Los componentes están conectados entre sí a través de un objeto llamado netlist el cual nos permite tener diagramas más limpios.

Este funciona de forma tal que todo lo que tenga el mismo nombre pertenece al mismo netlist y deberá estar conectado junto cuando hagamos el PCB (con traces). Así por ejemplo en el diagrama podemos observar el pin 33 del socket del CPU con un netlist llamado D0 deberá estar conectado al pin 1 del header data que también está conectado al netlist D0.

PCB de la Placa CPU 6502 de la 20c

El siguiente PCB explica cómo se ubican los elementos y traces para conectar nuestro circuito. El PCB es de 4 capas teniendo en la capa llamada TOP todas las conexiones de nuestros netlist a través de traces, los cuáles son finas capas de cobre que conectan los mismos como si fueran cables.

Tenemos dos capas especiales llamadas 5v y GROUND donde conectaremos las conexiones de power y ground o masa. Al usar estas conexiones en capas separadas nos ahorramos muchos centímetros de traces que deberían conectarse a pines con los voltajes de 5V y GROUND y podemos conectar directamente estos pines a la capa correspondiente.

Otra ventaja de tener una capa entera para GROUND es poder aislar el ruido eléctrico de las conexiones entre componente.

Por último tenemos la capa de BOTTOM donde se sueldan nuestros componentes y tenemos conexiones adicionales.

Modelado 3D

Cuando terminamos de realizar nuestra Placa debemos proceder al modelado 3D de la misma para observar cómo queda y si nos gusta el lugar donde pusimos cada componente.

Generación de archivos fuente

Para poder mandar a fabricar nuestro PCB deberemos contar con al menos 3 archivos:

  1. Archivo .gerber donde le indicamos al fabricante como armar nuestra placa
  2. Archivo BOM o Bill of materials donde se encuentran todos los componentes que forman nuestra placa con el código de producto del fabricante.
  3. Archivo Pick and Place donde le indicamos al fabricante cómo ubicar los componentes en nuestra placa PCB.

Estos archivos los van a encontrar previamente generados en el github de Osolabs. También incluimos archivos para poder editar el circuito con el software EasyEDA o Altium Designer.

Gerber_v03_CPU6502_4Plane.zip

Este archivo contiene todos los planos para poder generar nuestra placa PCB.

BOM_v03_CPU6502_4Plane.xlsx

Contiene todos los componentes de nuestra placa y el código del fabricante que identifica a ese componente.

PickAndPlace_v03_CPU6502_4Plane.xlsx

Indica en qué parte del PCB va cada componente y en qué capa debe ubicarse.

ProDoc_v03_CPU6502_4Plane.epro

Archivo para EasyEDAPro con el circuito y el PCB el cual puede editarse.

Altium_Circuit_v03_CPU6502_4Plane.schdoc

Contiene el diseño del circuito editable con el programa Altium Designer.

Altium_PCB_v03_CPU6502_4Plane.pcbdoc

Contiene el diseño del PCB editable con el programa Altium Designer.

cpu6502_3dModel.png

Es una imagen del modelo del PCB en 3 dimensiones

cpu6502_Circuit.png

Es una imagen del circuito de la placa CPU 6502

PCB_v03_CPU6502_4Plane_2024-06-29.pdf

Es un PDF con un dibujo de cada capa del PCB

Preparación de las Placa CPU

Al recibir nuestra placa de la fábrica y antes de comenzar a utilizar la misma y al momento que la sacamos de la caja, hay algunas tareas que deberemos hacer para poder hacer uso al máximo de la misma:

  1. Remover los bordes de manipulación de la placa
  1. Limpiar placa con alcohol isopropílico
  1. OPCIONAL – Poner un zócalo ZIF de 40 pines en el socket presente en la placa
  1. Poner el cpu 6502 en el socket
    1. Ajustar a mano las patas del chip para que calcen el socket
    2. Alinear pin 1 con el pin 1 en el socket
    3. Primero insertar un lado del chip, poniendo el mismo en diagonal y luego el otro lado
    4. Verificar que ninguna patita quedó doblada
    5. Hacer presión y ver que todas están bien ajustadas en el socket
  1. Poner Tornillos de soporte de la placa para que esté levantada por encima de la superficie.

 

Guía de Conexión de la placa CPU 6502 de la 20c

Vamos a explicar como conectar los distintos componentes de la placa para dejar esta lista para funcionar en una maqueta. Esta es una configuración con todas las placas que vamos a utilizar aunque todavía no las hayamos vistos. Puedes tener esta sección como referencia para cuando ensambles toda la 20c.

CPU 6502

Para configurar la placa de CPU 6502 vamos a realizar las siguientes conexiones.

  1. Conectamos todos los pines del ADDRESS BUS del A0 al A15  hacia la placa externa a la cual llevamos la señal. Puede ser directamente a la placa ROM o RAM, una placa BUS ADDRESS DATA EXPANSION o cualquier otra a la que llevemos esa señal desde el procesador. Recordemos que las direcciones del address bus se generan en el procesador.
  1. Conectamos todos los pines del DATA BUS del D0 al D15  hacia la placa externa a la cual llevamos la señal. Puede ser directamente a la placa ROM o RAM, una placa BUS ADDRESS DATA EXPANSION o cualquier otra a la que llevemos esa señal desde el procesador.
  1. Conectar al pin de CLOCK del EXPANSION BUS un cable desde la placa de CLOCK header CLOCK 555 OUT pin CLK.
  1. Conectar al pin de CLOCK de otro EXPANSION BUS un cable desde la placa de CPU hacia la placa a la que le querramos dar señal de reloj.
  1. Conectar el pin RDY del EXPANSION BUS a 5v con una resistencia de 1k ohm.
  1. Conectar el pin IRQ del EXPANSION BUS a 5v con una resistencia de 1k ohm.
  1. Conectar el pin NMI del EXPANSION BUS a 5v con una resistencia de 1k ohm.
  1. Conectar el pin SO del EXPANSION BUS a 5v  con una resistencia de 1k ohm.
  1. Conectar el pin BE del EXPANSION BUS a 5v con una resistencia de 1k ohm.
  1. Conectar el pin VP del EXPANSION BUS a 0v  con una resistencia de 1k ohm.
  1. Conectar los pines 5v y GROUND a una fuente de 5V y 0v, respectivamente.

Sugiero la siguiente guía de colores si vamos a utilizar cables con terminales macho/macho tipo dupont:

Experimento 1 – Viendo el proceso de Reset y la instrucción NOP

Veamos cómo funciona el RESET de nuestro CPU y la operación NOP. Para esto nos vamos a valer de un CLOCK externo que estudiaremos en detalle en el el Episodio 2 y de una conexión a un Arduino Mega a través del conector de Arduino el cuál desarrollaremos en el Episodio 3.

Le vamos a indicar a Mano a nuestro CPU 6502 que ejecute la instrucción de no operación NOP, la misma está codificada como EA en las instrucciones del lenguaje máquina del 6502.

EA se traduce en binario cómo 1110 1010 y esto es lo que va a esperar nuestro procesador en sus pines de data para poder leer esa instrucción. Para poder hacerlo vamos a conectar 8 resistencias a nuestros pines de datos de la siguiente forma:

Si corremos una secuencia de reset tocando el botón de RESET del la placa CPU 6502 y observamos el resultado, veremos cómo ejecuta el reset en 7 ciclos de reloj y buscará en las posiciones de memoria FFFC y FFFD donde está el vector (otra posición de memoria) que posee la primera instrucción a ejecutar. Tarda 7 ciclos ya que en RESET no es ni más ni menos que una instrucción BRK o BREAK cargada por hardware a través del pin de RESET.

 El reset debe ser mantenido en 0v por lo menos durante dos ciclos de reloj para que sea reconocido.

Podemos observar que luego de la ejecución va a leer como primera instrucción EA o la instrucción NOP de no operación y continuará así ejecutando ya que la misma está harcodeada con las resistencias. El Program Counter se incrementa en 1 luego de la ejecución de cada instrucción por eso vemos que pasa de EAEA a EAEB, luego EAEC, etc. Siempre obteniendo como código de la próxima instrucción EA. 

Se repite dos veces por que cada instrucción EA toma dos ciclos de reloj en ejecutarse.

Así concluye nuestro primer experimento donde vimos como el CPU 6502 realiza la secuencia de RESET y lee una primera instrucción.

Conclusiones

La Placa CPU 6502 nos va a dejar conectar un CPU 6502 para realizar experimentos con mucha rapidez ya que fácilmente abre los pines del CPU en ADDRESS, DATA y EXPANSION bus y nos da un botón de reset preinstalado.

El CPU 6502 en funcionamiento

Para ver visualmente cómo conectar un CPU 6502 a la 20c les dejo como siempre un video en detalle de la serie. En este vamos a ver cómo se conectan los pines, y nuestro experimento en forma visual indicando. Buscar el video del Episodio 1 

https://www.osolabs.tech/the20c

Referencias

A continuación les dejo algunos links donde profundizar el tema:

WEBSITE

Aquí está el sitio de OsoLabs con todos los videos y artículos.

OsoLabs.tech 

VIDEOS

Aquí el video correspondiente a este capítulo y la lista de todos los videos de esta serie.

https://www.osolabs.tech/the20c

ARTICULOS

Aqui podrán encontrar todos los artículos sobre la 20c:

https://www.osolabs.tech/the20c

CÓDIGO y DISEÑO DE PLACAS PCB

Todos los ejemplos de código de este artículo los pueden encontrar en:

https://github.com/osolabstech/The20c

OTROS RECURSOS

Y como siempre la serie de Ben Eater del 6502 que es excelente

Build a 6502 computer | Ben Eater 

Y la serie de mi creación comparando el 6502 vs 6510 tanto en video como en artículos

https://www.osolabs.tech/6502vs6510

6502 vs 6510 estudio detallado y comparación – YouTube 

C64 a Fondo – Indice

PAPERS

W65C02S 8–bit Microprocessor 

6510 MICROPROCESSOR WITH I/O 

Destacado

VCF East 2024 – ¿Qué es y cómo fue mi experiencia?

Hola! Mi nombre es Jorge Abreu y hoy les quiero contar que son los eventos VCF y como fue mi experiencia participando por primera vez de uno en la VCF East 2024 en New Jersey, Estados Unidos.

Arranquemos primero explicando que es la “VCF” o “Vintage Computer Festival”, que como pueden adivinar del nombre es un Festival orientado a las computadoras retro, básicamente desde el inicio de los tiempos hasta curiosidades de los 90s y 00s. Organizada por distintas agrupaciones dependiendo de la geografía, pero siempre bajo un mismo nombre, la Vintage Computer Federation, cuya misión es preservar la historia de la computación a través de educación, divulgación, conservación y restauración. 

Siempre me gustaron las computadoras, las consolas y los videojuegos, y también el contar historias y compartir experiencias, es así como en mi vida adulta siempre pase por distintos medios hablando ya sea de tecnología o videojuegos, pero con el tiempo me di cuenta de que mi pasión no está en las cosas modernas, sino en lo retro, y si le sumamos el ser originario de Argentina (ahora vivo en Canada, esto es un punto clave para algo más adelante) esto le agrega el condimento a que por supuesto tengo afinidad por las computadoras, consolas y videojuegos que pasaron por Argentina, sobre todo de la época de 8 y 16 bits.

Es así como charlando con un compañero de trabajo que se llama Ricardo, que es originario de Brasil, me propone ir a visitarlo en Estados Unidos y que juntos expongamos una mesa en la VCF East 2024. Nos pusimos de acuerdo y decidimos hacer una exposición sobre computadoras de 8 Bits de Argentina y Brasil.

Ricardo presento las siguientes computadoras de Brasil:

  • TK2000, tk3000iie, Unitron apII, Craft y Apple: Todas clones no oficiales de Apple 2 o sus variantes.
  • TK82c: Clon de la Sinclair zx80.
  • TK85: Clon de la Timex 1500.

Yo presente los siguientes equipos de Argentina:

  • Czerweny CZ Spectrum (Basada en la ZX Spectrum)
  • Drean Commodore 64 (Breadbin) (Commodore 64)
  • TALENT DPC-200 (MSX compatible)
  • Czerweny CZ 1500 (versión de la Timex 1500)
  • Froggy Junior (Clon de Atari 2600)

Con respecto al evento, no solo hubo mesas con exposiciones tanto personales como de organizaciones y museos, sino que además hubo charlas, paneles de discusión, talleres, y hasta un salón dedicado para que los asistentes puedan vender, intercambiar o regalar sus equipos retro. Aproveche y me lleve un manual del Sistema Operativo GEOS para Commodore 64 gratis, no pude comprar nada porque ya me había gastado todo en poder viajar al evento lamentablemente. Un saludo a la gente de las agrupaciones CyberCirujas en Argentina que justamente son una comunidad que se dedican al intercambio de equipos tecnologicos.

Entre las variadas exposiciones hubo de todo, desde microcomputadoras de las que se armaban en kit de los 70s, micro computadoras hogareñas de los 80s, hasta mini computadoras empresariales. En cada mesa todos esperaban contar con pasión lo que estuvieron haciendo con esos equipos, ya sea restaurarlos, programar un juego, o hacerle modificaciones para agregar nuevas capacidades. Obviamente en una de esas mesas nos podían encontrar a Ricardo a mi, en donde la gente se iba fascinada del contraste entre los clones de Apple 2 de Brasil, y los intentos de equipos licenciados de Argentina. En determinado momento se corrió un poco la voz, y vinieron varios Argentinos a visitar la muestra y charlar de sus experiencias con estos equipos décadas atrás. Me pareció una muy linda forma de conectar a estas personas con un pedacito de la historia de su país de origen, más allá de los motivos que les hayan llevado a emigrar. Uno por ejemplo, vino con el hijo, y le mostró cómo era LOGO en español en la Talent MSX, y como era común que se use en la escuela para enseñar a programar dibujando con la tortuga.

Algo muy lindo es que en cada mesa en la que uno iba a ver que exponen, todo el mundo estaba completamente abierto a charlar y contarte en detalle que estabas viendo, que significa, por que era interesante, etc. Lo que generaba charlas super interesantes sobre cuál era tu experiencia o conocimientos, discutir sobre estas cuestiones, en donde te cuentan algo y vos les contas algo parecido que hiciste y ambos aprenden o conocen algo nuevo. También mucha gente ayudando a otros con problemas o a reparar sus equipos. Mucho ambiente de comunidad y sociable, y obviamente todos muy predispuestos a contarle todo en detalle cuando pasaba alguien del público que por ahí no era del ambiente de sistemas. En mi caso por ejemplo, al lado mio estaba la mesa del Home Computer Museum de Países Bajos, y ellos también estaban exponiendo una MSX hecha en ese país, con lo que nos usábamos mutuamente como ejemplo para demostrar las capacidades del estándar MSX, en donde ellos podían mostrar un juego corriendo en vivo en su MSX, parar, poner el cartucho a mi talent MSX de Argentina, y que el juego arranque como si nada aunque sean dos computadoras fabricadas por personas que nunca supieron que los otros existían, pero ambas siguiendo todo el estándar MSX. Y así muchísimos otros ejemplos.

Antes quiero recordarles que algo que hace especial a las VCF es la idea de el mundo retro como comunidad, en donde cada persona con la que uno charla, intercambia experiencias y conocimientos compartiendo lo que cada uno sabe, conoce o experimentó, y ya que estamos contarles que me enteré de que gracias a Espacio TEC vamos a tener VCF en Argentina con la llegada de VCF Latam los 24, 25 y 26 de Abril del 2026. Esto me hace muy feliz y espero que puedan ir a visitar la VCF Latam porque estoy seguro de que va a ser increible!

Para cerrar, les dejo algunas fotos de cosas lindas que vi en la VCF East 2024 y les invito a que vayan a la VCF Latam en 2026!

TK2000 Color Computer (Un Clon de Apple II de Brasil). Equipo de Ricardo Setti. Foto Jorge Abreu.
Una Apple Lisa 2/10! Foto Jorge Abreu.
La fallida IBM PC Jr. Foto Jorge Abreu.
Un clon de Mac de Pioneer conectado a diversos sistemas multimedia como una Webcam y un LaserDisc. Foto Jorge Abreu.
Una de las famosas computadoras de Silicon Graphics, nunca habia visto una en persona. Foto Jorge Abreu.
Una Univac 1219, de las primeras computadoras comerciales de la historia orientada a instituciones militares. Foto Jorge Abreu.
Una PDP-8 de DEC. Foto Jorge Abreu.
Una Sol-20, o Sol terminal Computer, de 1976 fue una de las primeras computadoras en venderse completamente armadas en la historia. Foto Jorge Abreu.
Una computadora BeBox con el sistema operativo BeOS. Foto Jorge Abreu.
El Home Computer Museum de Países Bajos. Foto Jorge Abreu.
Una Laser 128, era una especie de clon de Apple II. Y libros y aplicaciones para el sistema grafico GEOS. Foto Jorge Abreu.
Una presentacion demostrando que hubo terminales con capacidades para realizar graficos y no solo texto. Foto Jorge Abreu.
La consola de videojuegos RCA Studio II. Foto Jorge Abreu.
Aca pueden ver a Joyce Weisbecker jugando su propio juego en una RCA Studio II de 1977. Es considerada de las primeras programadoras de videojuegos de la historia. Foto Jorge Abreu.

Gracias por leer, espero que les haya gustado, y no se pierdan la VCF Latam 2026!

Jorge Abreu.

Destacado

El Hombre detrás de la Máquina (Parte 1)

En esta serie de capítulos veremos algo referido las calculadoras mecánicas antiguas, mi tema de expertise como colaborador dentro de Espacio TEC, y además como coleccionista desde hace ya… ¡un tiempo considerable!

Pero el enfoque no será referido a la descripción de las calculadoras en sí, sino a sus creadores, sus inventores, sus padres por llamarlos de alguna manera. Las historias en estos capítulos estarán enfocadas exclusivamente hacia ellos, sus vidas, sus sufrimientos, sus expectativas, y también a la similitud con seres de nuestro tiempo.

Es bien sabido que en la historia de la innovación se ha dado el fenómeno, casi un cliché, de las parejas con personalidades tan discímiles pero complementarias, que logran el no tan fácil objetivo de sacar adelante una idea, convertirlo en un producto y que sea un éxito. Hay muchos de estos personajes icónicos, pero creo que dentro de la memoria popular podríamos tomar como caso de estudio para nuestra comparativa a Steve Jobs y de Steve Wozniak (Woz para los amigos) y su empresa Apple.

Hablemos un poco de ellos:

1)  Lo de Woz era inventar y construir; lo de Jobs eran el marketing y la venta. Se potenciaron mutuamente. Decidieron trabajar juntos y el 1 de enero de 1976 se lanzaron a la aventura.

2) Woz se encargaba de diseñar y construir el dispositivo (el Apple 1 lo hizo con sus propias manos y en una caja de madera). Y Jobs de venderlo y de desarrollar el futuro de la sociedad.

3) Wozniak era el creativo, Jobs buscaba rédito, que la creatividad está muy bien, pero el dinero está mucho mejor. Creatividad sin dinero, agoniza. Dinero sin creatividad, no hace crecer la empresa.

4) Un ejemplar de la Apple 1 se encuentra hoy en el Instituto Smithsoniano.

Apple I con gabinete de madera                                                                 

Hablemos ahora de la calculadora Comptometer (una de las favoritas de mi colección, y de las más populares entre las de su tipo).

Fue diseñada por Dorr E. Felt en el año 1884, un genio para la mecánica (un hombre con un talento e ingenio natos a un nivel de diseño mecánico tan altos como lo era Wozniak para la electrónica).

Su prototipo al igual que el de Woz también fue hecho en una caja de madera, para ser más exactos en una caja de macarrones que en esa época era de madera.

Prototipo del Comptometer, en su caja de madera

La Comptometer fue la primera calculadora mecánica con funcionamiento a tecla. Era tan rápida para sumar que hoy en día (a 140 años de su invención) no se alcanza su velocidad con una calculadora de mano, ni con un celular abierto ya en la aplicación. Por el contrario, cabe señalar que era muy complicada para las otras operaciones básicas, pues para restar había que sumar complementos y para multiplicar había que poner los dedos de una forma digna del mejor contorsionista. Sin embargo, el uso mayoritario eran operaciones de suma, lo cual la convirtió en una herramienta muy eficiente.

El problema de Mr. Felt era que tenía que competir con el líder de ese momento, el aritmómetro (esta calculadora podía sumar, restar, multiplicar y dividir). Y como si eso fuese poco a los dos años de empezar aparecería otro competidor monstruo: la calculadora de Burroughs. Su gran ingenio técnico no iba a ser suficiente para enfrentarse contra estos dos rivales, lo cual representaba un gran problema… hasta que lo conoció a Robert Tarrant.

Robert Tarrant al igual que Jobs era un genio para el marketing y la venta. Así que al igual que Steve se asoció con Woz, Tarrant se asoció con Felt y ambos se potenciaron mutuamente.

En 1887 formaron una sociedad igualitaria y 14 meses después se constituyó como Felt &Tarrant Company (nada de frutas en este nombre). El trabajo de Felt sería diseñar y construir el dispositivo y el de Tarrant venderlo y desarrollar el futuro de la sociedad.

Hoy cualquiera de nosotros con un dispositivo que llevamos en el bolsillo (léase teléfono celular) hace cualquier cuenta en segundos, desde las simples operaciones hasta algunas mas complejas como obtener una raíz cuadrada o un logaritmo. Pero en aquella época cuando una empresa precisaba un empleado para administración la oferta no era mucha, el empleado era caro y en muchos casos se precisaban unos meses de capacitación hasta aprender a usar la máquina para que esa persona pudiese tomar su puesto. Allí fue donde Tarrant mostró su genio en el marketing, creando escuelas de capacitación en Comptometer a un costo accesible para los alumnos. Fundó 150 sucursales (si, leyeron bien: ciento cincuenta escuelas en 1890), estableciendo centros de capacitación en todo el mundo, llegando a que casi un tercio de estas escuelas estuvieran radicadas en el extranjero. En el apogeo de la “Era del Comptometer” este era el sistema de escuelas privadas más grande del mundo.

Escuela Comptometer en Chicago
Escuela Comtometer en Bombay
Escuela Comptometer en Australia

Esto hizo que “según versiones de la época” cuando se solicitaba un empleado para administración con conocimiento de máquinas de cálculo de 100 postulantes más de 97 estuviesen con su diploma de Comptometer bajo el brazo. Sin contar, claro que estos 97 eran fácilmente reemplazables y tenían menores pretensiones de sueldo. Esto disparó las ventas, ya que era más económico cambiar las calculadoras que seleccionar personal experto.

Entre 1880 y 1915 cuatro eran las empresas líderes en el mundo en calculadoras de oficina, Aritmómetros, Burroughs, Original Odhner y Comptometer. De estas cuatro tres hacían las cuatro operaciones en forma directa y rápida.

La más vendida de ellas solo sumaba… Creo que no hay mucho mas que hablar.

Ah! me olvidaba de mencionar: la primer Comptometer hecha en una caja de macarrones también está en el instituto Smithsoniano.

La hermana de Dorr Felt haciéndole entrega de la primera Comptometer al curador del Instituto Smithsoniano