The 20c – Episodio 5 – Glue Logic

Introducción

En este episodio vamos a conocer como poder activar todos los chips que tenemos en nuestra 20c cuando elegimos una dirección de memoria específica.

Esto vamos a lograrlo a través de la placa de Glue Logic, la cual combina cuatros chips lógicos AND, OR, NAND y NOT para poder activar los diversos chips.

Vamos a estudiar el pinout de nuestras compuertas, cómo funcionan, y cómo activar la memoria ROM que vimos en nuestro episodio anterior.

Como siempre vamos a explicar como crear la placa desde cero y como funciona la misma.

Descripción general de la placa Glue Logic

Nuestra Placa Glue Logic consiste en 4 chips lógicos AND, OR, NOT y NAND los cuáles en combianción con las direcciones del ADDRESS BUS van a tener valores lógicos de output que permitan activar los diversos chips que tiene nuestra 20c como ser por ejemplo el chip ROM.

Para activar estos chips la salida de nuestra compuertas lógica van a ir conectadas a los pines de chip select de cada uno de estos chips, haciendo que se activen sólo cuando la dirección correcta aparezca en el address bus.

La placa Glue Logic contiene 4 secciones bien definidas una para cada uno de nuestros chips de operaciones lógicas, en cada sección podemos distinguir tres partes:

  • Un socket para poner nuestro chip lógico
  • Tres headers donde conectar nuestros cables que se corresponden con el pinout de nuestro chip lógico
  • Dos headers unos a +5v y otro a +0v o ground.

NAND chip, 74HC00

En la sección de NAND podemos observar

  • Un socket para poner nuestro chip lógico 74HC00 NAND
  • Tres headers donde conectar nuestros cables que se corresponden con el pinout de nuestro chip lógico, la idea de tener tantos headers es que nos permita combinar inputs y salidas desde diferentes pines.
  • Dos headers unos a +5v y otro a +0v o ground. Estos headers son para cuando queremos dejar el input de una de nuestras compuertas siempre en el nivel lógico 1 o +5v o en el nivel lógico 0 o +0v. Recordemos que para que funcione bien TODO el chip lógica cada input que tenemos debe estar conectado a algo aunque no estemos usando esa compuerta.

NAND – Descripción 74HC00 y pin out

Este chip es un Quad-Input NAND chip lo que él mismo nos va a dar 4 compuertas NAND con dos input y un output cada una.

El chip presenta estas 4 compuertas distribuidas entre todos sus pines

Pin 1 – 1A – IN_E: Es la primera entrada a la compuerta NAND 1

Pin 2 – 1B – IN_F: Es la segunda entrada a la compuerta NAND 1

Pin 3 – 1Y – OUT_EF: Es la salida de la compuerta NAND 1

Pin 4 – 2A – IN_G: Es la primera entrada a la compuerta NAND 2

Pin 5 – 2B – IN_G: Es la segunda entrada a la compuerta NAND 2

Pin 6 – 2Y – OUT_GH: Es la salida de la compuerta NAND 2

Pin 7 – GND – GROUND: Es la conexión a tierra del chip

Pin 8 – 3Y – OUT_CD: Es la salida de la compuerta NAND 3

Pin 9 – 3A – IN_D: Es la primera entrada a la compuerta NAND 3

Pin 10 – 3B – IN_C: Es la segunda entrada a la compuerta NAND 3

Pin 11 – 4Y – OUT_AB: Es la salida de la compuerta NAND 4

Pin 12 – 4A – IN_B: Es la primera entrada a la compuerta NAND 4

Pin 13 – 4B – IN_A: Es la segunda entrada a la compuerta NAND 4

Pin 14 – VCC – +5v: Es la conexión a +5v del chip

NAND – Tabla de verdad

Aquí lo que podemos observar es cómo funciona lógicamente este chip a través de su tabla de verdad

Este chip sólo va a dar como resultado Low, lógicamente 0 o +0v, cuando ambos input sean +5v o High o lógicamente 1.

NAND – Ejemplo de Uso

En la 20c lo usamos para activar la ROM, la cual queremos activar cuando estamos conectados a las direcciones que van entre $8000 y $FFFF.

Si las vemos en binario tienen en común que siempre el pin A15 del address bus es 1.

Vamos a conectar el pin A15 del address bus al Input 1 y también al Input 2, de esta forma vamos a hacer un NAND contra sí mismo. Esto nos va a dar como resultado +0v.

Ese +0v vamos a conectarlo al pin de Chip Enable /CE de la ROM la cual espera un LOW para activarse.

Recordemos que los input que no necesitamos vamos a conectarlos a +5v para que no queden flotando.

AND chip, 74HC08

En la sección de AND podemos observar

  • Un socket para poner nuestro chip lógico 74HC08 AND
  • Tres headers donde conectar nuestros cables que se corresponden con el pinout de nuestro chip lógico, la idea de tener tantos headers es que nos permita combinar inputs y salidas desde diferentes pines.
  • Dos headers unos a +5v y otro a +0v o ground. Estos headers son para cuando queremos dejar el input de una de nuestras compuertas siempre en el nivel lógico 1 o +5v o en el nivel lógico 0 o +0v. Recordemos que para que funcione bien TODO el chip lógica cada input que tenemos debe estar conectado a algo aunque no estemos usando esa compuerta.

AND – Descripción 74HC08 y pin out

Este chip es un Quad-Input AND chip lo que él mismo nos va a dar 4 compuertas AND con dos input y un output cada una.

El chip presenta estas 4 compuertas distribuidas entre todos sus pines

Pin 1 – 1A – IN_E: Es la primera entrada a la compuerta AND 1

Pin 2 – 1B – IN_F: Es la segunda entrada a la compuerta AND 1

Pin 3 – 1Y – OUT_EF: Es la salida de la compuerta AND 1

Pin 4 – 2A – IN_G: Es la primera entrada a la compuerta AND 2

Pin 5 – 2B – IN_G: Es la segunda entrada a la compuerta AND 2

Pin 6 – 2Y – OUT_GH: Es la salida de la compuerta AND 2

Pin 7 – GND – GROUND: Es la conexión a tierra del chip

Pin 8 – 3Y – OUT_CD: Es la salida de la compuerta AND 3

Pin 9 – 3A – IN_D: Es la primera entrada a la compuerta AND 3

Pin 10 – 3B – IN_C: Es la segunda entrada a la compuerta AND 3

Pin 11 – 4Y – OUT_AB: Es la salida de la compuerta AND 4

Pin 12 – 4A – IN_B: Es la primera entrada a la compuerta AND 4

Pin 13 – 4B – IN_A: Es la segunda entrada a la compuerta AND 4

Pin 14 – VCC – +5v: Es la conexión a +5v del chip

AND – Tabla de verdad

Aquí lo que podemos observar es cómo funciona lógicamente este chip a través de su tabla de verdad.

Este chip sólo va a dar como resultado High, lógicamente 1 o +5v, cuando ambos input sean +5v o High o lógicamente 1.

AND – Ejemplo de Uso

En la 20c lo usamos para activar un chip en la dirección que comienza con $0110 o 6 en hexadecimal, si lo usamos en combinación con la compuerta OR

Espacio de DireccionamientoHexaBinario
Superior$60000110 0000 0000 0000
Superior$60010110 0000 0000 0001

Esto lo vamos a usar para activar un chip un chip VIA 6522 que sirve para realizar input/output en nuestra 20c.

Este chip tiene dos pines para chip select uno llamado Chip Select 1 o CS1 espera un valor de +5v, el valor lógico 1 y el otro Chip Select 2 o /CS2 espera +0v, el valor lógico 0

En este ejemplo vamos a cerrar el circuito para el CS1 y en el ejemplo del gate OR vamos a hacerlo para el /CS2

Vamos a conectar el pin A14 del address bus al Input 1 y el pin A13 al Input 2, de esta forma vamos a hacer un AND que nos va dar el resultado lógico 1 o +5v.

Ese +5v vamos a conectarlo al pin de Chip Select 1 CS1 del VIA 6522 el cual espera un HIGH para activarse.

Recordemos que los input que no necesitamos vamos a conectarlos a +5v para que no queden flotando.

OR chip, 74HC32

En la sección de OR podemos observar

  • Un socket para poner nuestro chip lógico 74HC32 OR
  • Tres headers donde conectar nuestros cables que se corresponden con el pinout de nuestro chip lógico, la idea de tener tantos headers es que nos permita combinar inputs y salidas desde diferentes pines.
  • Dos headers unos a +5v y otro a +0v o ground. Estos headers son para cuando queremos dejar el input de una de nuestras compuertas siempre en el nivel lógico 1 o +5v o en el nivel lógico 0 o +0v. Recordemos que para que funcione bien TODO el chip lógica cada input que tenemos debe estar conectado a algo aunque no estemos usando esa compuerta.

OR – Descripción 74HC32 y pin out

Este chip es un Quad-Input OR chip lo que él mismo nos va a dar 4 compuertas OR con dos input y un output cada una.

El chip presenta estas 4 compuertas distribuidas entre todos sus pines

Pin 1 – 1A – IN_E: Es la primera entrada a la compuerta OR 1

Pin 2 – 1B – IN_F: Es la segunda entrada a la compuerta OR 1

Pin 3 – 1Y – OUT_EF: Es la salida de la compuerta OR 1

Pin 4 – 2A – IN_G: Es la primera entrada a la compuerta OR 2

Pin 5 – 2B – IN_G: Es la segunda entrada a la compuerta OR 2

Pin 6 – 2Y – OUT_GH: Es la salida de la compuerta OR 2

Pin 7 – GND – GROUND: Es la conexión a tierra del chip

Pin 8 – 3Y – OUT_CD: Es la salida de la compuerta OR 3

Pin 9 – 3A – IN_D: Es la primera entrada a la compuerta OR 3

Pin 10 – 3B – IN_C: Es la segunda entrada a la compuerta OR 3

Pin 11 – 4Y – OUT_AB: Es la salida de la compuerta OR 4

Pin 12 – 4A – IN_B: Es la primera entrada a la compuerta OR 4

Pin 13 – 4B – IN_A: Es la segunda entrada a la compuerta OR 4

Pin 14 – VCC – +5v: Es la conexión a +5v del chip

OR – Tabla de verdad

Aquí lo que podemos observar es cómo funciona lógicamente este chip a través de su tabla de verdad

Este chip sólo va a dar como resultado Low, lógicamente 0 o +0v, cuando ambos input sean +0v o Low o lógicamente 0.

OR – Ejemplo de Uso

En la 20c lo usamos para activar un chip en la dirección que comienza con $0110 o 6 en hexadecimal, si lo usamos en combinación con la compuerta AND

Espacio de DireccionamientoHexaBinario
Superior$60000110 0000 0000 0000
Superior$60010110 0000 0000 0001

Esto lo vamos a usar para activar un chip un chip VIA 6522 que sirve para realizar input/output en nuestra 20c.

Este chip tiene dos pines para chip select uno llamado Chip Select 1 o CS1 espera un valor de +5v, el valor lógico 1 y el otro Chip Select 2 o /CS2 espera +0v, el valor lógico 0

En este ejemplo vamos a cerrar el circuito para el /CS2 y en el ejemplo del gate AND vamos a hacerlo para el CS1

Vamos a conectar el pin A15 del address bus al Input 1 y el pin A12 al Input 2, de esta forma vamos a hacer un OR que nos va dar el resultado lógico 0 o +0v.

Ese +0v vamos a conectarlo al pin de Chip Select 2 /CS2 del VIA 6522 el cual espera un LOW para activarse. De esta forma junto con cómo configuramos la compuerta AND, logramos que se active el chip VIA cuando la dirección empieza con 6 las que sería de la forma $6XXX

Recordemos que los input que no necesitamos vamos a conectarlos a +5v para que no queden flotando.

NOT chip, 74HC04

En la sección de NOT podemos observar

  • Un socket para poner nuestro chip lógico 74HC04 NOT
  • Tres headers donde conectar nuestros cables que se corresponden con el pinout de nuestro chip lógico, la idea de tener tantos headers es que nos permita combinar inputs y salidas desde diferentes pines.
  • Dos headers unos a +5v y otro a +0v o ground. Estos headers son para cuando queremos dejar el input de una de nuestras compuertas siempre en el nivel lógico 1 o +5v o en el nivel lógico 0 o +0v. Recordemos que para que funcione bien TODO el chip lógica cada input que tenemos debe estar conectado a algo aunque no estemos usando esa compuerta.

NOT – Descripción 74HC04 y pin out

Este chip posee 6 compuertas NOT, con un input y un output cada una

El chip presenta estas 6 compuertas distribuidas entre todos sus pines

Pin 1 – 1A – IN_D: Es la primera entrada a la compuerta OR 1

Pin 2 – 1Y – OUT_D: Es la salida de la compuerta OR 1

Pin 3 – 2A – IN_E: Es la primera entrada a la compuerta OR 2

Pin 4 – 2Y – OUT_E: Es la salida de la compuerta OR 2

Pin 3 – 3A – IN_F: Es la primera entrada a la compuerta OR 3

Pin 6 – 3Y – OUT_F: Es la salida de la compuerta OR 3

Pin 7 – GND – GROUND: Es la conexión a tierra del chip

Pin 8 – 4Y – OUT_C: Es la salida de la compuerta OR 4

Pin 9 – 4A – IN_C: Es la primera entrada a la compuerta OR 4

Pin 10 – 5Y – OUT_B: Es la salida de la compuerta OR 5

Pin 11 – 5A – IN_B: Es la primera entrada a la compuerta OR 5

Pin 12 – 5Y – OUT_B: Es la salida de la compuerta OR 6

Pin 13 – 5A – IN_B: Es la primera entrada a la compuerta OR 6

Pin 14 – VCC – +5v: Es la conexión a +5v del chip

NOT – Tabla de verdad

Aquí lo que podemos observar es cómo funciona lógicamente este chip a través de su tabla de verdad

Este chip sólo va a dar como resultado Low, lógicamente 0 o +0v, cuando el input sea +5v o High y dar’a como resultado +5v o High  cuando el input sea Low o lógicamente 0.

NOT – Ejemplo de Uso

Podemos usar el NOT para que cuando un chip se active otro esté desactivado.

Espacio de DireccionamientoHexaBinario
RAM$0000 – $7FFF0000 0000 0000 0000
ROM$8000 – $FFFF1000 0000 0000 0001

Por ejemplo si queremos que cuando accedemos a la memoria RAM, se desactive el chip de la memoria ROM, vamos a aprovechar que el pin A15 en 0 habilita la memoria RAM y conectar a través de una compuerta NOT ese mismo pin para que le envié una señal de +5v.

Estos +5v los conectaremos al pin /CS de la ROM, recordemos que si este pin está con +5v o High no va a habilitarse el chip ROM.

Recordemos que los input que no necesitamos vamos a conectarlos a +5v para que no queden flotando.

Circuito de la Placa GLUE LOGIC de la 20c

Los siguientes gráficos muestran el circuito que explica el funcionamiento de la Placa GLUE LOGIC de la 20c. Como tenemos muchos componentes vamos a dibujarlo en 3 hojas separadas.

Vamos a estudiar los elementos de la página 1:

SOCKET AND_74HC08

El cual está representado físicamente como un socket DIP-14 de 14 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 AND_IN_A representa el de input para la compuerta AND AB, este netlist estará conectado a todos los elementos que tenga que estar conectados con la línea o trace del input para el AND como veremos en los 3 AND_HEADER.

Tiene conectado los netlists de las compuertas AB, CD, EF, GH y se dividen en dos de entradas AND_IN_A, AND_IN_B y uno de salida AND_OUT_AB, para cada compuerta.

Para darle energía está conectado a los planos de +5v y GROUND.

HEADER AND

Este es un header hembra de 12 pines el cuál se usa para conectar todas las entradas y salidas hacia los pines del chip AND_74HC08. Este tiene conectados 12 netlist que realizan la conexión con el socket AND.

Tenemos tres de estos conectores para poder distribuir mejor las entradas y salidas de las compuertas AND.

HEADER +5v

Este es un header hembra de 8 pines el cuál se usa para conectar +5v en todos sus pines. Vamos a utilizarlo cada vez que queramos dar una entrada fija de +5v o 1 lógico en una compuerta. Vamos a tener dos de estos headers uno cerca de la compuertas AND y otro cerca de las compuertas OR.

HEADER GROUND

Este es un header hembra de 8 pines el cuál se usa para conectar +0v en todos sus pines. Vamos a utilizarlo cada vez que queramos dar una entrada fija de +0v o 0 lógico en una compuerta. Vamos a tener dos de estos headers uno cerca de la compuertas AND y otro cerca de las compuertas OR.

SOCKET OR_74HC32

El cual está representado físicamente como un socket DIP-14 de 14 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 OR_IN_A representa el de input para la compuerta OR AB, este netlist estará conectado a todos los elementos que tenga que estar conectados con la línea o trace del input para el OR como veremos en los 3 OR_HEADER.

Tiene conectado los netlists de las compuertas AB, CD, EF, GH y se dividen en dos de entradas OR_IN_A, OR_IN_B y uno de salida OR_OUT_AB, para cada compuerta.

Para darle energía está conectado a los planos de +5v y GROUND.

HEADER OR

Este es un header hembra de 12 pines el cuál se usa para conectar todas las entradas y salidas hacia los pines del chip OR_74HC32. Este tiene conectados 12 netlist que realizan la conexión con el socket AND.

Tenemos tres de estos conectores para poder distribuir mejor las entradas y salidas de las compuertas OR.

Veamos los componentes de la Página 2

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 cuatro 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 expansion 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 de RAMROM como ser:

RW, OE, CS

o señales genéricas que pueden transmitir información a otras placas como ser:

RST, CLOCK, RW, E5 hasta E15

Tenemos cuatro 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.

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

En nuestro ejemplo todas las conexiones A0 estarán conectadas por traces en el PCB

Finalmente veremos los componentes de la página 3

SOCKET NAND_74HC00

El cual está representado físicamente como un socket DIP-14 de 14 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 NAND_IN_A representa el de input para la compuerta NAND AB, este netlist estará conectado a todos los elementos que tenga que estar conectados con la línea o trace del input para el NAND como veremos en los 3 NAND_HEADER.

Tiene conectado los netlists de las compuertas AB, CD, EF, GH y se dividen en dos de entradas NAND_IN_A, NAND_IN_B y uno de salida NAND_OUT_AB, para cada compuerta.

Para darle energía está conectado a los planos de +5v y GROUND.

HEADER NAND

Este es un header hembra de 12 pines el cuál se usa para conectar todas las entradas y salidas hacia los pines del chip NAND_74HC00. Este tiene conectados 12 netlist que realizan la conexión con el socket NAND.

Tenemos tres de estos conectores para poder distribuir mejor las entradas y salidas de las compuertas NAND.

HEADER +5v

Este es un header hembra de 8 pines el cuál se usa para conectar +5v en todos sus pines. Vamos a utilizarlo cada vez que queramos dar una entrada fija de +5v o 1 lógico en una compuerta. Vamos a tener dos de estos headers uno cerca de la compuertas AND y otro cerca de las compuertas OR.

HEADER GROUND

Este es un header hembra de 8 pines el cuál se usa para conectar +0v en todos sus pines. Vamos a utilizarlo cada vez que queramos dar una entrada fija de +0v o 0 lógico en una compuerta. Vamos a tener dos de estos headers uno cerca de la compuertas AND y otro cerca de las compuertas OR.

SOCKET NOT_74HC04

El cual está representado físicamente como un socket DIP-14 de 14 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 NOT_IN_A representa el de input para la compuerta NOT A, este netlist estará conectado a todos los elementos que tenga que estar conectados con la línea o trace del input para el NOT como veremos en los 3 NOT_HEADER.

Tiene conectado los netlists de las compuertas A,B, C,D, E y Fy se dividen en una entrada NOT_IN_A y una salida NOT_OUT_B, para cada compuerta.

Para darle energía está conectado a los planos de +5v y GROUND.

HEADER NOT

Este es un header hembra de 12 pines el cuál se usa para conectar todas las entradas y salidas hacia los pines del chip NOT_74HC04. Este tiene conectados 12 netlist que realizan la conexión con el socket AND.

Tenemos tres de estos conectores para poder distribuir mejor las entradas y salidas de las compuertas NOT.

Con esto ya hicimos un repaso de todos los componentes de nuestros circuitos para la placa de GLUE LOGIC.

PCB de la Placa ROM de la 20c

El siguiente PCB explica cómo se ubican los elementos y traces para conectar nuestro circuito. El PCB que diseñamos está hecho con 4 capas de cobre.

TOP

En la capa llamada TOP que es la que podríamos ver como arriba y de frente en nuestra PCB vamos a tener algunas las conexiones de nuestros netlist a través de traces, los cuáles son finas líneas de cobre que conectan los mismos como si fueran cables y los todos los componentes ya sea sockets, capacitores y headers.

LAYER 5V

En la capa +5v conectaremos las conexiones de power. Al usar estas conexiones en una capa separada nos ahorramos muchos centímetros de traces que deberían conectarse a pines con los voltajes de 5V podemos conectar directamente el pin de cada componente a esta capa a través de un agujero llamado VIA.

LAYER GROUND

En la capa GROUND conectamos las conexiones de ground o masa. Al de tener una capa entera para GROUND es poder aislar el ruido eléctrico de las conexiones entre componentes.

BOTTOM

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, Kickcad o Altium Designer.

Con estos tres archivos vamos a poder fabricar nuestra placa

Gerber_v03_01_GLUE_LOGIC_4Plane_2026-09-14.zip Este archivo contiene todos los planos para poder generar nuestra placa PCB.

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

PickAndPlace_v03_01_GLUE_LOGIC_4Plane_2026-09-14.xlsx

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

Los siguientes archivos se proveen para poder editar el circuito

3DModel_GlueLogic_front.png

Es una imágen con la parte de atrás de nuestra placa modelada en 3D

3DModel_GlueLogic_back.png

Es una imágen con la parte de adelante de nuestra placa modelada en 3D

Altium_1_v03_01_GLUE_LOGIC_4Plane_P1.schdoc,

Altium_2_v03_01_GLUE_LOGIC_4Plane_P2.schdoc

Altium_3_v03_01_GLUE_LOGIC_4Plane_P3.schdoc

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

Altium_v03_01_GLUE_LOGIC_4Plane.pcbdoc

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

PCB_v03_01_GLUE_LOGIC_4Plane_2026-09-14.pdf

Es un PDF con un dibujo de cada capa del PCB

ProDoc_v03_01_GLUE_LOGIC_4Plane_2026-09-14.epro

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

SCH_v03_01_GLUE_LOGIC_4Plane_2026-09-14.pdf

Es un PDF con los circuitos lógicos de la placa

Preparación de las Placa GLUE LOGIC

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. Poner el chip 74HC00 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 o instalarla, en nuestro caso usamos la base impresa en 3D de la 20c que vamos a aprender a crearla e imprimirla en un próximo Episodio.

Guía de Conexión de la placa GLUE LOGIC de la 20c

Vamos a explicar como conectar los distintos componentes de la placa para dejar esta lista para funcionar en una maqueta reemplazando al breadboard que usamos en el Episodio anterior para seleccionar la memoria ROM.

Tené esta sección como referencia para cuando ensambles toda la 20c.

La memoría ROM queremos activarla para que funcione en las direcciones $8000 a $FFFF. Para esto vamos a necesitar tener el pin  A15 en uno como ya hemos visto.

A15A14A13A12address
ROM1XXX8000-FFFF

La memoria ROM tiene dos pines para activarse /OE y / CS ambos tienen que estar en cero para que la misma esté activada.

/OE memoria ROM

El Pin /OE vamos a conectarlo directamente a la señal de GROUND para que esté siempre activo. Esto ya lo realizamos en el capítulo anterior, pero lo vuelvo a mostrar acá como referencia

R/W memoria ROM

El Pin R/W vamos a conectarlo directamente a +5v para que la memoria sea de sólo lectura siempre . También ya lo realizamos en el capítulo anteior.

/CS memoria ROM

El pin de chip select vamos a seleccionarlo con el pin A15. Al pin A15 vamos a combinarlo consigo mismo en una compuerta NAND de forma tal que cuando valga un 1 lógico o +5v la  compuerta NAND dará un 0 lógico o +0v. Como ya estudiamos por el comportamiento de la compuerta NAND

Esa salida de la compuerta NAND vamos a conectarla a través del EXPANSION BUS con el pin /CS

Vamos a utilizar al el chip 74HC00, usando los pines IN_A, IN_B y la salida OUT_AB

  1. Conectar el chip 74hc00 en la placa 20c tener en cuenta cuál es el pin 1
  1. Para poder hacer el efecto en la compuerta NAND conectaremos el pin A15 del bus de direccionamiento al pin IN_A del 74HC00.

  1. Como estamos usando un NAND recordamos que tenemos de segunda entrada también al address A15 asi que procedemos a tomarlo desde el el pin IN_A y lo conectamos al pin IN_B

  1. Conectamos la salida de la compuerta NAND al pin E6 del expansion BUS

  1. Finalmente para que el chip 74HC00 funcione no podemos dejar ninguno de sus inputs flotantes por lo que los conectamos todos a +5v. Estos son los pines 1A, 1B, 2A, 2B, 4A, 4B.

  1. Conectamos la Salida E6 del bus de Expansión de la placa GLUE LOGIC al pin /CS del bus de expansión en la PLACA ROM. También conectamos el pin A15 del ADDRESS BUS de la placa ROM al pin A15  ADDRESS BUS del placa GLUE LOGIC.

  1. Finalmente para que el chip 74HC00 funcione no podemos dejar ninguno de sus inputs flotantes por lo que los conectamos todos a +5v. Estos son los pines 1A, 1B, 2A, 2B, 4A, 4B.

Conexión del resto de la placas

Para poder realizar nuestro experimentos tenemos que configurar el CLOCK y la CPU 6502 de la 20c asi cómo darle power en +5v.

  1. Conectamos un módulo de power a nuestro breadboard seleccionado el carril en +5v, tener en cuenta de poner el pin del módulo que dice + en el carril rojo de +5v.
  1. Conectamos el carril rojo del breadboard al pin de +5v de la placa de RAM/ROM.
  1. Colocamos al costado de la placa de RAM/ROM la placa de CLOCK y conectamos los pines de power +5v y GROUND entre las dos placas
  1. Conectamos el header de +5v y GROUND de la placa de GLUE LOGIC a los mismos de la placa de ROM
  1.  Verifiquemos que tengamos conectada la salida del reloj paso a paso de la placa de CLOCK al pin CLOCK de la placa de RAM/ROM pero en el pin header inferior, el que está más cerca del breadboard

  1.  Verifiquemos que tengamos conectada la placa de CPU encima de placa de RAM/ROM y conectamos todos los headers de ADDRESS BUS y de DATA BUS. También vamos a conectar entre sí el pin de CLOCK y los pines de +5v y GROUND.
  1. Verificamos que tengamos instalada la placa de DUINO PROTOCOL ANALYZER junto a su Arduino Mega en el header superior de la placa de CPU 6502.

  1. Por último observamos que así nos queden todas las conexiones

Experimento 1 – Grabando solo NOPs

Vamos a reproducir el experimento que usábamos en el Episodio anterior, grabando la instrucción de no operación NOP, cuyo opcode es 0xEA como vinimos haciendo hasta acá y estudiaremos cómo se comporta la 20c usando la placa de DUINO PROTOCOL ANALYZER.

Vamos a usar el programa que creamos en la sección sobre código máquina. Este programa usa principalmente la instrucción NOP:

Para el detalle línea por línea de lo que hace el programa ir a la sección Programando en Assembler del Episodio 4 ROM, Read Only Memory.

Vamos a compilarlo con vasm.

Y ahora colocamos la eeprom en el programador

Corremos el comando minipro y lo grabamos

Y ahora vamos a estudiar la salida del procesador usando el DUINO PROTOCOL ANALYZER, utilizando el script 001_Arduino_DUINO_PA que ya vimos en el Episodio 3 sobre el DUINO PA y analizaremos el output de nuestro experimento.

Reset seguido de lectura de instrucciones NOP

  1. Conectamos el pin CLK del header CLOCK_555_OUT
  1. Seleccionemos el switch para el reloj paso a paso.
  1. Presionemos el botón de reset de nuestro CPU y dejemoslo presionado.
  1. Presionar 3 veces el botón de STEP BUTTON de nuestra placa de CLOCK
  1. Soltar el botón de RESET de nuestro CPU
  1. Continuemos presionando el botón de STEP BUTTON de nuestra placa de CLOCK y veremos que cada vez que lo hacemos avanza un ciclo en  nuestro CPU, algunas instrucciones ocupan un ciclo de reloj y otras más
  1. Observamos en detalle los datos que nos da nuestro DUINO PROTOCOL ANALYZER a través del Arduino Mega.

El procesador va a encender y buscar en las posiciones $FFFC y $FFFD la dirección de la primera instrucción a ejecutar ordenados como Low Byte y High Byte.

$FFFC contiene $00 = %0000 0000

$FFFD contiene $80 = %1000 0000

En la misma va a encontrar los bytes $00 y $80 al utilizar la notación little endian la dirección que va a cargar el cpu 6502 en su registro de program counter va a ser $8000

Si lo ordenamos por los pines del address bus veríamos:

El Pin A A15 es un 1 que a través de la compuerta NAND se transforma en 0 equivalente a 0 Volts o Low, y como está conectado al  pin /CE nuestra EEPROM se activará.

Con esto cargará el  Program Counter con la primera posición de nuestro programa ficticio que será $8000 y buscará el código de la próxima instrucción a ejecutar que será EA ya que es lo único que tenemos en el bus de datos.

La próxima instrucción leída del data bus es la instrucción EA la cual significa la no operación NOP, sabemos que es un código de operación porque el flag S de SYNC está activado en nuestro bus de EXPANSION BUS significando un ciclo de OP-FETCH.

Esta ejecución durará dos ciclos de reloj y luego el program counter avanzará a 8001 y volverá a leer el bus de datos en búsqueda de la próxima instrucción que seguirá siendo EA y así continuará.

El ciclo de ejecución de la primera instrucción es la siguiente:

  1. 8000 lee del databus el opcode hay +5V en el pin de SYNC lo interpreta como una instrucción Incrementa el program counter.
  2. Ejecuta la instrucción EA o sea NOP de no operación (ciclo 1 de 2)  y pone 8001 en el address bus
  3. Termina de ejecutar la instrucción NOP (ciclo 2 de 2) y trae la próxima instrucción de la dirección 8001 que sigue en el address bus. Incrementa el program counter.

Con esto probamos que nuestra placa GLUE LOGIC, se encuentra bien configurada y funcionando correctamente.

Conclusiones

La Placa GLUE LOGIC nos permite seleccionar el funcionamiento de distintos chips de nuestra computadora dependiendo que dirección del ADDRESS BUS utilicemos. Es fundamental para poder implementar el tipo de arquitectura que estamos utilizando de registros mapeados en memoria. Aqui repasamos como funciona cada uno de sus 4 chips lógicos; como crear nuestra placa y como hacer un par de experimentos para aprender su funcionamiento.

La placa GLUE LOGIC en funcionamiento

Para ver visualmente cómo conectar la placa GLUE LOGIC  de 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.

Referencias

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

Arduino IDE

EasyEDA Pro – V2.2.39 

ATMEL AT28C256 datasheet 

74HC00 NAND Datasheet 

74HC04 NOT Datasheet 

74HC08 AND Datasheet 

74HC32 OR Datasheet 

TL866II USER GUIDE 

David Griffith / minipro · GitLab 

W65C02S 8–bit Microprocessor 

6502 Instruction Set 

vasm portable and retargetable assembler 

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

Aquí podrán encontrar todos los artículos sobre La 20c:

https://blog.espaciotec.com.ar

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

Como la serie donde vemos todos los juguetes y periféricos de la Commodore que siempre quisimos tener, Los chiches de la Commodore tanto en video como en artículos

https://www.osolabs.tech/los-chiches-de-la-commodore

Los Chiches De La Commodore 

C64 a Fondo – Indice

Y la serie donde comparamos en 6502 contra el 6510 utilizando breadboards.

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

6502 vs 6510 estudio detallado y comparación – YouTube 

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

Build a 6502 computer | Ben Eater 

De Comodoro a Commodore – Parte 1

Mi historia con Commodore

Mi historia con Commodore comienza allá por 1985. Viviendo en Comodoro Rivadavia (a 2000 km de Buenos Aires), resultaba IMPOSIBLE conseguir cualquier tipo de material para la máquina. Aclaración: una vez, en unas vacaciones en Buenos Aires, mi tío Pablo me mostró una 128 con tres juegos: Aztec Challenge, Ace of Aces y Summer Games. Ahí me volví, literalmente, loco. yo venía de jugar en una Coleco Vision y una Commodore 64 en casa de mi amigo/hermano de la vida Ignacio aka Nacho. Amor a primera vista. Por supuesto: rompí el joystick, cortesía del juego de Epyx.

Ya de vuelta en Comodoro, mis padres me regalaron una Commodore 64c para mi cumpleaños. Se habían asesorado, y alguien les había dicho que la versión americana era mejor que la argentina (tópico para hablar en un próximo artículo). ¿El año? 1986.

Así, la máquina fue comprada en USA. La enviaron por barco. Tardó tres meses en llegar. Cuando finalmente la tuve en mis manos, la emoción pudo más. ¿El resultado? Humo gris por todos lados. Claro, el transformador era 110V. En Argentina usamos 220V. Comencé a llorar desconsoladamente. A esa altura, un negocio que reparaba todo tipo de electrodomésticos nos vendió la fuente a 220V. Ya era hora de empezar a usar la bendita máquina. Y ahí surgió el gran dilema: ¿dónde conseguir software?

Un par de fines de semana después, jugando en casa de Nacho, se nos acercó su papá, el queridísimo Raúl. Traía una revista, similar a un periódico. Se llamaba “Segundamano”. En ella, se ofrecían todo tipo de compraventa, del rubro que pudieras imaginarte. Un rubro nos llamó poderosamente la atención: el 20, “Computación”. En el mismo, cientas de tiendas del rubro, ofreciendo reparación, asesoramiento técnico, venta de hardware y…software!!!! Así es, varias páginas de avisos de casas de computación, ofreciendo todas las “novedades” para Commodore, Spectrum, Atari y MSX. Con el correr del tiempo se sumarían Amiga, Mac y PC. Todo, absolutamente todo, era software crackeado. El 99% de las veces, venía de Europa. El 1%, de Estados Unidos. Por supuesto, muchas de estas casas de venta de hardware y software tenían algún que otro joven talentoso, quien a veces ponía intros/cracktros del negocio, a modo de “competencia”. Los mensajes consistían básicamente en reírse de la competencia, pues las novedades las tenían ellos en primer lugar, o bien mandar saludos a “amigos” de la escena.

¿Cómo llegaban los juegos a nuestro país? Gente que viajaba solía traerse muchas cajas con soft. O bien, los dueños de los comercios enviaban un sobre con dólares envueltos en papel de diario a los diferentes crackers. Y a cruzar los dedos. Al mes, si es que la Aduana no retenía el paquete por “sospechoso”, lo recibían con todas las novedades. Respecto al tema Aduana, existen muchos mitos y leyendas. Uno dice que se coimeaba al Oficial de Aduana de turno, llevándole una docena de golosinas, dulces, baguels.

Poco después, algunos valientes adquirieron modems y empezaron su aventura en los BBS. Y, por supuesto, se descargaban absolutamente todo lo que aparecía en pantalla.

Un problema surgió: aquellos que teníamos máquinas con la norma NTSC, teníamos dificultades para entretenernos con los juegos llegados de Europa. La solución más fácil era convertir la máquina a PAL-N, la norma argentina, diferente a la PAL que se utiliza en Europa. Pero los juegos andaban, no se colgaban. Unas pocas veces, se conseguían juegos con “fixes” a PAL-N, pero eran una rareza.

Cabe aclarar que en Argentina (y me atrevería a decir que en Uruguay, Paraguay, Chile, Brasil y Perú, por citar algunos países de la región) JAMÁS existieron los juegos originales. Ya de por sí, comprar una máquina era muy caro. El doble, incluso el triple de lo que costaban en Europa o Estados Unidos. Luego, esa diferencia de precios se achicó con la aparición de las versiones argentinas de la Commodore (Drean), MSX (Talent MSX), Spectrum (CZ Spectrum). También, material para otro artículo.

Volviendo a lo que nos interesa: “Segundamano” se editaba martes y viernes. El día que nos interesaba era el martes, pues ahí era cuando aparecían las publicidades. Imposible olvidarse de negocios como Realtime, Red Point, Bad Boy (Crackers Revenge) y muchísimos más. Estos tres que menciono, tienen de por sí una historia fascinante (sí, nuevamente, para otro artículo en el futuro). Esto no quiere decir que no aparecieran luego comercios en las principales ciudades del resto del país, donde casi siempre vendían el material que le compraban a los negocios de Buenos Aires.

Raúl, viajaba por trabajo dos o tres veces al mes a la Capital. Con Nacho, realizábamos una exhaustiva selección. Elegíamos 20/25 juegos y se los dábamos a Raúl en un sobre. El sobre contenía los recortes de Segundamano de los negocios dónde él debía ir y comprar los juegos que, previamente, habíamos marcado con lapicera. Era una peregrinación que valía la pena, al menos, para nosotros. Buenos Aires es una ciudad muy grande. La recorrida podía ser agotadora. En cada local, podías estar tres, cuatro, cinco horas esperando a que te grabasen los juegos. Era un furor increíble. Muchísima gente ya tenía acceso a las home computers. Se podían comprar en grandes comercios en cómodas cuotas, se podían traer de afuera de “contrabando”, era todo un universo fabuloso.

Cuando Raúl regresaba, era una fiesta. Una fiesta que a veces podía demorar dos o tres semanas. La ansiedad era inevitable. Éramos chicos de 11/12 años. Nos juntábamos en su casa y, literalmente, pasábamos el fin de semana entera completamente focalizados en los juegos nuevos, en terminarlos, usando o no las delicias que le agregaban los crackers (vidas infinitas, tiempo ilimitado, etc).

Se preguntarán por el precio de los juegos. Tal vez haya sido de un centavo, o 5 centavos, o 10 centavos de dolar, al equivalente de hoy.

Con el correr del tiempo, empezaron a venderse los utilitarios: Print Shop, Newsroom, GEOS y todos sus accesorios. Y, por supuesto, no faltó la producción local de muchísimo hardware, ya sea desarrollado acá o clonado de algún producto foráneo. Así, empezamos a tener la versión local del fast load de Epyx, Final Cartridge, Logo, lápiz óptico, etc. Paralelamente, apareció software comercial: control de stock, software de gestión, horóscopo, todo hecho en Argentina, y en español, por supuesto.

Pero, aún existía un GRAN problema: ¿cómo hacer para no depender de Nacho? ¿Cómo podía yo tener mis propios juegos?
La respuesta, apareció casi de manera lógica. Después de ir tantas veces a los mismos comercios a comprar juegos, uno empezaba a hacerse “amigo” de los chicos que grababan los mismos. Yo, en cada viaje de un amigo o familiar, aprovechaba para pedir mi lote. Obviamente, juegos distintos a los que tenía Nacho. Entonces, una semana yo tenía los de él y él tenía los míos. Luego, cada pack de juegos volvía a su dueño. Estos chicos solían trabajar a cambio de que les proveyeran de software, que luego vendían en otros comercios. En una oportunidad, le pregunté, a uno de ellos, haciéndome el desentendido, cómo hacían para copiar los juegos. Ahí escuché por primera vez una palabra famosa: “Fast Hack´em”. Sin dudar, le dije “quiero comprarlo”. El chico me miró, se rió y me dijo: “te va a costar una fortuna”. ¿Cuánto es esa fortuna? Aproximadamente el equivalente a 10 cajas de diskettes. Tuve que tomar una decisión casi drástica: o compraba 10 cajas repletas de juegos, o compraba EL software, el copiador. Tras meditarlo, compré el copiador.

Volví a Comodoro con un trofeo, una reliquia, una joya. Rápidamente, empecé a copiarme todo el catálogo de software de Nacho. Y le copíe todo el mío. En un comercio local, empecé a comprar cajas y cajas de diskettes. Había de todas las marcas, para todos los gustos: Damy, Maxell, 3M…

La noticia se fue expandiendo rápidamente. Tengan en cuenta que Comodoro, en esa época, tenía una población de alrededor de 100.000 habitantes. Así, empecé a copiar a mis compañeros de colegio, a amigos de mis compañeros de colegio, a sus amigos, a conocidos. Un día, le copié a Nacho y a otros amigos el bendito Fast Hack´em. El tesoro pasó a ser parte de la comunidad.

Pasó el tiempo y, en otro viaje a Buenos Aires, pude ver, casi de reojo, un monitor 1902 con una pantalla que nunca había visto: “Maverick”. Inmediatamente, pregunté qué era. La respuesta provocó en mí una sonrisa enorme. Era un gigante upgrade del Fast Hack´em. Sin dudarlo, lo compré. Con esto, subíamos varios peldaños: los juegos “imposibles” de copiar, ya estaban al alcance de todos.

Así transcurrieron los días en 1986, 1987 y 1988: se podía jugar cuando terminábamos de hacer la tarea escolar, o bien los fines de semana. Por supuesto, otros accesorios fueron agregándose a nuestros equipos, principalmente, la impresora. Empezamos a tener una excusa perfecta para usar nuestras Commodore en cualquier momento: podíamos imprimir material para la escuela, banners, carteles, monografías. Incluso, hacer lo más parecido a una revista de fin de año.

Paulatinamente, surgió otro furor: las máquinas de 16 bits. Esta, ya es otra historia.

Nos leemos en la parte 2

Gavilan/G*P

Festejando la Democracia

Hola, soy alecu y hago juegos con ventiladores. En los últimos años vengo también dando una mano en EspacioTec con restauraciones, y cada tanto estoy viajando al museo. En 2024 durante el primer Taller de Historia, Tecnologías e Informática me lo crucé a Guillermo Crespi, de Modo Historia. Lo felicité por su magnífico podcast, y en particular por los episodios que relatan la historia de las home computers en Argentina.

Continuar leyendo “Festejando la Democracia”

Retrocomputación: La historia de Retroterm y otros desarrollos

Tenía pendiente desde hace un tiempo escribir un artículo sobre el desarrollo de Retroterm, nuestra terminal multimedia multiplataforma, que nació en Commodore 64 y luego se expandió para soportar también Commodore Plus/4 y MSX.

Como algunos sabrán, en el año 2006 nos reunimos Diego Chiacchio, Pablo Roldán y yo, Jorge Castillo, y decidimos crear el foro de Retrocomputacion.com. De los tres, Pablo y yo, aunque en distintas épocas y ciudades, habíamos seguido caminos similares: fuimos usuarios de Commodore 64 y después de Amiga, programamos en lenguaje ensamblador e hicimos proyectos de electrónica. Pero no fue hasta 2020 con el proyecto Retroterm que empezamos a publicar software con el nombre Retrocomputación.

Continuar leyendo “Retrocomputación: La historia de Retroterm y otros desarrollos”

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.

Continuar leyendo “The 20c – Episodio 1 – CPU 6502”

The 20c – Indice de Episodios

La 2oc es una computadora modular basada en la arquitectura del procesador 6502 diseñada para aprender a programar en Assembler y arquitectura de los computadores.

En este artículo tenemos un índice a todos los artículos de la serie, publicados en el blog de EspacioTec

Taller de Historia, Tecnologías e Informática en Espacio TEC, junto a la SADIO, la UNS y el CONICET.

La Sociedad Argentina de Informática (SADIO) organiza las 53vas Jornadas Argentinas de Informática (JAIIO) junto con la Universidad de Sur y el CONICET, siendo Bahía Blanca el escenario este año. Tendrán lugar desde el lunes 12 al viernes 16 de este mes (agosto, 2024).

Continuar leyendo “Taller de Historia, Tecnologías e Informática en Espacio TEC, junto a la SADIO, la UNS y el CONICET.”

El proyecto CEUNS (*)

El inicio de una pequeña gran historia. Fue en 1961 que comenzó el proyecto Ceuns (Computadora Electrónica de la Universidad Nacional del Sur), ideado por el ingeniero Jorge Santos, con el objetivo de construir una computadora realmente operativa para la Universidad Nacional del Sur (UNS), situada en la ciudad de Bahía Blanca, y que pudiera luego ser transferida a la industria nacional.

Durante la década anterior, numerosos centros académicos de varios países se habían planteado proyectos similares para construcción de computadoras. En Argentina surgieron dos: el Ceuns y el Cefiba (Computadora Electrónica de la Facultad de Ingeniería de la Universidad de Buenos Aires).

Pero vayamos un poco más atrás en el tiempo para saber el origen del proyecto. En octubre de 1960 Santos había logrado, por intermedio del rector de la UNS, que la Legislatura de la Provincia de Buenos Aires votara un subsidio destinado a la construcción de una computadora, además del compromiso formal de participación del Departamento de Matemática.

Es que Santos ya venía trabajando en el diseño de su proyecto durante su estadía en la Universidad de Manchester, donde colaboró en el desarrollo del proyecto Atlas (la primera computadora a transistores que produjo la empresa Ferranti). La pretensión de construir una computadora en la remota Bahía Blanca se sostenía en la convicción, compartida por Santos y un grupo innovador de la UBA, de la necesidad de promover la independencia tecnológica como pilar del desarrollo económico y social del país, y en una serie de condiciones favorables, tanto técnicas como académicas y políticas.

El año 1960 fue clave en la introducción de la computación en Argentina. IBM presentó el modelo 305 y poco después instaló una IBM 650 con sistema de discos Ramac en su data center y colocó otra máquina en la empresa Transportes de Buenos Aires. En noviembre llegó la Ferranti Mercury para el Instituto de Cálculo creado en la Facultad de Ciencias Exactas de la UBA. En ese mismo año, Ferrocarriles Argentinos había recibido dos equipos Univac SS-90 con la nueva tecnología de estado sólido.

Fue en la UBA y la UNS, escenarios destacados de la renovación universitaria, donde se promovieron los primeros desarrollos de la computación en Argentina. La construcción en el país de una computadora pequeña de costo limitado parecía un objetivo loable y alcanzable.

Jorge Santos se había graduado en la Facultad de Ingeniería de la UBA, donde había trabajado hasta 1953, cuando su contrato no fue renovado por no estar afiliado al partido gobernante, como le sucedió a otros docentes, entre ellos Manuel Sadosky. Y fue gracias a la influencia intelectual de Sadosky que conoció el nuevo fenómeno de la computación y fomentó su idea de construir una computadora. Sadosky le había dicho a Santos: “tenemos que hacer una máquina; con menos cantidad de válvulas, pero hay que hacerla”.

La experiencia de Santos en Manchester fue posible gracias a la creación del CONICET, presidido por el doctor Bernardo Houssay, en donde una de las primeras actividades fue la de otorgar becas de perfeccionamiento en el exterior a las nuevas camadas de investigadores de las universidades. Santos, que luego de la UBA se había mudado a Bahía Blanca para trabajar en la UNS, fue seleccionado y viajó en agosto de 1959. Su tema de estudio fue “Diseño lógico en computadoras digitales”.

La Universidad de Manchester tenía una alianza con la empresa Ferranti, fabricante de la Mercury, la computadora adquirida por el Instituto de Cálculo de la UBA. Por fortuna, la estadía de Santos coincidió con el diseño de la Atlas, la sucesora de la Mercury, en el cual Santos participó en el equipo desarrollando el algoritmo de división.

Tiempo después, cuando Santos regresó a Bahía Blanca, tenía entre manos un proyecto elaborado y sustentable. Sabía que para concretarlo necesitaría dinero y un equipo de trabajo que incluya programadores, ingenieros y matemáticos. Con la conjunción de tres aspectos favorables (el entusiasmo de la comunidad científica argentina, la existencia de un proyecto sólido y un ambiente político favorable a la inversión tecnológica), la Legislatura provincial votó un subsidio de 100 mil dólares para la concreción material de la Ceuns, que iba a ser desembolsado en cinco cuotas correspondientes a los años programados para la finalización del proyecto. En el presupuesto provincial de 1961 se incluyó la primera cuota de 20 mil dólares.

Todo estaba en marcha. Una breve caracterización de la Ceuns apareció en el Boletín de la Sociedad Argentina de Cálculo, donde se mencionó la construcción de un computador de bajo costo en el que sus códigos de operación y forma operativa estén basados en la Mercury. La Ceuns contaría con una memoria de trabajo, acceso inmediato a núcleos magnéticos de 64 palabras de 36 bits dividida en 4 páginas. Esa memoria sería ampliada con otra, también con acceso inmediato a núcleos magnéticos, de tipo fijo. Los datos e instrucciones serían mantenidos en un tambor magnético de 9000 palabras y desde allí transferidos por páginas a la memoria de trabajo. El programa sería secuencial. La entrada sería por medio de un lector de cinta de papel y la salida por un perforador de cinta o por una máquina de escribir.

Sin embargo, a partir de agosto de 1961 comenzaron las dificultades. El gobierno de la Provincia de Buenos Aires libró una orden de pago por un monto de 1.300.000 pesos moneda nacional, equivalente en ese momento a 15.711 dólares. El pago no se efectuó, al menos no en el corto plazo, y Santos tuvo que solicitar a las autoridades de la UNS un adelanto de 20 mil pesos para no paralizar el proyecto. El adelanto fue otorgado, y el pago estatal finalmente se hizo efectivo, pero fue lo único que se percibió del subsidio.

Más tarde, en marzo de 1962, una crisis política desencadenó la intervención federal a la Provincia de Buenos Aires, e incluso la disolución de su Poder Legislativo. Ese hecho, si bien no implicaba la derogación de lo aprobado anteriormente, hizo que las relaciones de representación política y el marco ideológico que había posibilitado el logro de ese apoyo financiero, se quebraran.

Aunque en octubre de 1962 se pudo inaugurar un componente periférico que servía para paliar la carencia de una computadora en la UNS, para marzo de 1963 el proyecto no infería ningún avance sobre la situación del año anterior. Al no existir el subsidio del Estado, el trabajo continuaba al ritmo de los escasos aportes del CONICET o del presupuesto universitario. El equipo humano se redujo a tres personas con dedicación plena, hasta que durante 1965 el proyecto se fue apagando hasta ser definitivamente clausurado.

De acuerdo con los planes originales, la máquina debía entrar en operación en marzo de 1966 pero, salvo los periféricos inaugurados en 1962, no había más que partes sueltas. Las penurias materiales de las universidades nacionales fueron determinantes de unas demoras de gran magnitud en el plan del proyecto, y a eso se le sumó la discontinuidad en la fabricación de los componentes de hardware que se había decidido utilizar. El atraso y la falta de perspectivas pusieron en cuestión el sentido de continuar el esfuerzo, lo que selló el fracaso del proyecto.

Analizando los motivos de su final, la causa directa fue la aguda falta de recursos humanos y materiales debida, más que nada, a un cambio de las condiciones políticas, una circunstancia que convirtió al proyecto en patrimonio exclusivo de un pequeño grupo de desarrollo, solo constituido por ingenieros electrónicos. Por otra parte, entre su formulación y su abandono se había producido un cambio de foco en el diseño de las computadoras con la incorporación de componentes de software.

Años más tarde, a principios de la década de los 80’s, se constituyó en la UNS un área de docencia e investigación en informática, con protagonistas que no habían experimentado los problemas de los proyectos anteriores, y Ceuns fue ignorada como antecedente en las unidades académicas.

En retrospectiva, el proyecto Ceuns fue uno de los episodios iniciales de la computación en Argentina, ocurrió en la UNS y se intentó la construcción de una computadora con un objetivo que iba más allá del académico. Sucedió justo en un período de transición entre el surgimiento y cierta consolidación de la tecnología.

Como balance, puede señalarse la formación de una tradición en Electrónica en la UNS, la interacción con los matemáticos que dio sustento a la constitución de la actual escuela de docencia e investigación en computación, y los desarrollos pioneros en software “de base” creados en el proyecto.

La historia de la Ceuns, poco conocida y por demás interesante, no deja de ser inspiradora.

(*) el presente artículo está basado en el paper “Fulgor y ocaso de Ceuns. Una apuesta a la tecnología nacional en el sur de Argentina”, autoría de Rául Carnota y Ricardo Rodríguez, y publicado en “Historias de las TIC en América Latina y el Caribe: inicios, desarrollos y rupturas”, capítulo 9, editada por Ariel y Fundación Telefónica (España) en 2015.