En Argentina muchos la conocemos como la “Family Game”, aunque su nombre original es “Family Computer” y debutó en Japón. Su popularidad en el mercado provocó un aluvión de copias que, en algunos países, se volvieron centrales.
Hoy recorremos la historia de los famiclones. ¿Por qué se siguen vendiendo 42 años después?
Hola Bienvenidos a esta nueva serie sobre la 20C, una computadora modular de arquitectura simple diseñada desde cero para aprender y hacer experimentos.
Vamos a ver juntos cómo aprender más fácil cómo funciona una computadora en profundidad, cómo programarla en assembler y que pasa eléctricamente en la misma con cada línea de nuestros programas.
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.
A pesar de tomarse varias licencias artísticas, la franquicia de “Age of Empires” logró equilibrar educación histórica con diversión. En esta nota repasamos algunas curiosidades de aquel juegazo que fue (y sigue siendo) el Age of Empires II.
Todavia recuerdo el viaje en taxi hasta Pompeya. Un sábado de Junio de 1985 a la mañana, un dia frio, era el único dia que mi mamá estaba libre, que no trabajaba y que había negocios abiertos. Viajábamos desde la sucursal de Frávega en Flores, habíamos ido a buscar una Drean Commodore 64 y terminamos comprando lo que mi mamá podía pagar en ese momento, una Drean Commodore 16. La pagó en Flores, pero la retiramos en Pompeya. Tuvimos que esperar. Impaciencia de un adolescente que ansiaba abrir la caja y poner en marcha una computadora, mi primera computadora.
Voy a escribir y contar anécdotas personales, bajo mi propia perspectiva, relacionadas con la época dorada de la computación hogareña, y específicamente con todo lo relacionado a Commodore 16 / 64 y 128.
No es caprichosa la elección, son las computadoras que tuve en mi adolescencia, que coincide con la decada del ´80.
El primer tema que elegí esta ligado íntimamente a la Commodore 64, a como se conseguia el software en esa epoca y es para mi un tema interesante.
Si hubo un software controversial, y al mismo tiempo que fue el pilar para toda una época en la que las copias piratas no eran “ilegales”, ese fue sin dudas el
Podemos debatir si es o no la mejor consola de 16 bits. Lo que no vamos a negar es que la morocha de Sega Genesis tuvo un catálogo de títulos tan creativos como impresionantes. En esta nota te contamos cuáles son.
***
La Genesis es mi consola de 16 bits favorita y todavía hoy, en pleno 2024, está más viva que nunca. Quizás no podía igualar el poder de la SNES, y ciertamente no tenía el reconocimiento de su nombre como la consola de Nintendo.
Sin embargo, gracias a su veloz mascota azul, una gran cantidad de excelentes ports de arcade y una estrategia de marketing que se centró en los jugadores mayores, Sega le dio a Nintendo una competencia más que digna.
Si me preguntan, la Genesis ayudó a elevar la calidad de los juegos en todo el mundo y fue la gran precursora de géneros que terminaron explotando en popularidad muchos años después.
¿Sabían, por ejemplo, que un FPS llamado Zero Tolerance –otro típico clon de Doom– les permitía jugar de a dos? Necesitabas dos televisores, dos cartuchos, dos consolas y un cable link (un cable especial que se conecta al segundo puerto del controlador en ambas máquinas). Pero que se podía, se podía.
Zero Tolerance (1994) en modo coop con el link cable.
Esta consolita también tuvo unos rail-shooters que exprimían la capacidad técnica del hardware (pienso en Spare Harrier o Panorama Cotton), propuestas de estrategia en tiempo real (Herzog Zwei), adictivos RPG´s (Rings of Power, las sagas de Shining Force y Phantasy Star) y un montón de títulos que desbordaron creatividad.
Veamos cinco de ellos, que también resultan ser títulos favoritos (y grandes recomendaciones) de la morocha de Sega.
***
Crusader of Centy, ¿el precursor de Pokemon?
Este impecable action RPG –claramente inspirado en la saga de Zelda– vio la luz en el año 1994 y tiene algunos curiosos paralelismos con el primer juego Pokemon (que, ojo… saldría 4 años después).
La historia da inicio en la ciudad de Soleil. Allí existe una regla que requiere que todos los niños de 14 años se entrenen para prepararse para la guerra. El protagonista, Corona, acaba de cumplir la edad estipulada y recibe la espada y escudo de su padre, quien murió en batalla defendiendo a la ciudad de monstruos.
Crusader of Centy, juegazo de la Genesis.
Crusader of Centy tiene varios aspectos interesantes. El primero de todos es que, en los primeros momentos del juego, Corona gana la habilidad de hablar con plantas, monstruos y animales, pero pierde la de comunicarse con los humanos (recién la recupera a mitad de juego). Esto hace que la dinámica sea diferente y le permite a él conocer la otra cara de la moneda (spoiler alert: los verdaderos monstruos, de alguna manera, son los humanos).
Otra característica, quizás la más atractiva, es que va conociendo animales a lo largo de su viaje que le permiten adquirir diferentes habilidades. Este es el elemento más “Pokemon” que tiene el juego.
Es posible equiparse hasta dos animales para recibir sus efectos, y combinarlos para lograr resultados diferentes. Una cheetah te permite doblar la velocidad al caminar, una mariposa te da control manual sobre tu espada o una ardilla te permite que tu espada rebote en las paredes. También podés combinar los efectos de un pingüino (que hace tu espada de hielo) y un león (que hace tu espada de fuego) para darle un efecto más poderoso.
Si bien no es necesario “capturar” a todos los animales para terminar el juego, la mayoría de ellos te brindan habilidades necesarias para avanzar hacia otras partes del mapa. Y es muy divertido atraparlos a todos.
El curioso caso de General Chaos
General Chaos (¡creado por Electronics Arts!) salió en 1993 y es uno de los padres fundadores del género RTS con los que ahora todos estamos familiarizados. Cada equipo intenta capturar la ciudad capital de su oponente. Las batallas en sí son fáciles de entender (y aprender). Antes de luchar, cada bando elige uno de los cuatro conjuntos de escuadrones preestablecidos. Los equipos tienen cinco soldados con varias armas.
General Chaos es realmente un juego simple y adictivo. El concepto de guerra rudimentario hace que sea muy divertido hacer volar a tus oponentes. Quizás sea de los títulos más subestimados de la Genesis.
Esta obra también puede considerarse como un ejemplo temprano de lo que ahora se denomina “party games”. El modo para un jugador, aunque inicialmente atractivo, lamentablemente carece de profundidad y longevidad, sin embargo, no se puede decir lo mismo de los espléndidos modos cooperativo y de batallas compatibles con múltiples jugadores, en los que la acción es convenientemente caótica, frenética y evoca una amarga rivalidad.
Fatal Labyrinth: un roguelike en la Genesis
Soy el primero en admitir que Fatal Labyrinth (1991) se veía tan feo que parecía un juego de 8 bits más que de 16 bits, pero pocos me divertían tanto. Su aspecto más atractivo es el estilo roguelike (un género que descubrí con este juego, de hecho).
El subgénero del roguelike (o de “exploración de mazmorras”) es uno en el que énfasis está puesto en el contenido aleatorio: mazmorras generadas aleatoriamente, con enemigos, objetos y trampas al azar. La jugabilidad es el aspecto primario, por encima de la estética.
En este tipo de juegos morís con frecuencia, pero tiene una curva de aprendizaje que estimula el avance, e incluye ciertas mecánicas de juego que recompensan al que sigue intentando.
Uno de los primeros roguelikes: Fatal Labyrinth.
Gracias a Fatal Labyrinth, luego me fanaticé con el subgénero y me llevó a conocer Pixel Dungeon, del cual me enamoré perdidamente.
Dentro de la historia de la Genesis, Fatal Labyrinth es bastante único. Es el único juego de exploración de mazmorras tipo roguelike con mecánicas de RPG que haya visto en la consola. Es verdad que dura unas pocas horas, pero el hecho de que los mapas y objetos sean generados aleatoriamente brinda cierta rejugabilidad.
El subgénero roguelike hoy es uno de los más populares. Pienso en joyitas como Into the Breach, Dicey Dungeons, Slay the Spire, Rogue Legacy y tantos otros. Pero en aquella época era algo completamente desconocido. Por eso quizás Fatal Labyrinth me volvió tan loco en su momento.
El juego tiene lugar en una vista aérea mientras el jugador atraviesa habitaciones y pasillos para encontrar las escaleras al siguiente nivel. Dentro de estos pisos, encontraremos elementos y equipos mientras nos enfrentamos a enemigos por turnos. Los monstruos no reaparecen, pero si colgás demasiado tiempo en un mismo piso… lo harán. Por cierto, ¡este juego está disponible en Steam!
Gain Ground: acción y estrategia
Nuevamente les recomiendo un juego de 1988 que se ve feíto, pero que cuenta con una mecánica que lo hace especial. Junto a Gunstar Heroes, Sunset Riders y General Chaos, éste es el otro clásico que vale la pena jugar en modo cooperativo. ¡Y si no lo habré jugado!
Gain Ground, feito pero copado, como yo básicamente.
El juego combina acción y estrategia. Comenzás controlando a un número pequeño de personajes, cada uno con sus habilidades y características particulares. A medida que se va avanzando, vas rescatando a nuevos personajes con otro tipo de habilidades. Los primeros niveles comienzan en la Edad Oscura, luego avanzás hacia la Edad Media, la China pre-revolucionaria, el presente y, finalmente, el futuro lejano.
Recientemente me enteré de que Gain Ground tiene una versión remasterizada para la PlayStation 2 (se ve mucho más linda) y también una versión del original para Steam.
Atravesando paneles en Comix Zone
Comix Zone no sólo es uno de los juegos más originales de la Genesis, sino también del mundo entero. Un artista de comics (Sketch Turner) queda atrapado en una de sus creaciones y tiene que atravesar la historia cuadro por cuadro, atravesando paneles, atacando enemigos a medida que literalmente se dibujan frente a vos.
El gran problema con el juego es que era extremadamente corto (sólo 3 niveles) y muy difícil. Pero se veía tan bien que daban ganas de jugarlo una y otra vez. Además, contaba con algunas situaciones en las cuales podías elegir dos caminos, haciendo que el nivel variara ligeramente.
Comiz Zone, y todo lo demás no importa.
Nunca más vi un juego beat-em-up tan único como éste. Fusionó el clásico genero de acción y pelea con un diseño fresco, algunos rompecabezas para resolver, manejo de items y un estilo súper particular.
¿Jugaron estos cinco juegos de la morocha de 16-bits? ¿Qué otro título de la Genesis pueden recomendar? ¡Los leemos!
***
Si les gustó esta nota, recomienden a sus amigos. Y sino les gustó, le avisan a sus enemigos. ¡Recuerden que pueden apoyar a Espacio TEC subscribiéndose al Club Pixel o aportando con un cafecito!
¡Bienvenidos! Estamos empezando una nueva serie llamada Los Chiches de la Commodore 64. Nuestra querida Commodore nos dio muchas alegrías pero ella no podría haber hecho todo sola, por eso, siempre se valió de algunos Chiches.
En esta nueva serie vamos a estudiar cuáles son esos chiches, como funcionan por dentro y como usarlos.
Qué son los Chiches
Los Chiches son todos aquellos dispositivos clásicos y modernos que nos ayudan a usar la Commodore como por ejemplo la Famosa Jabonera de Reset, el sd2iec, los joysticks, el lápiz óptico, los adaptadores para el mouse, los cartuchos, los death test, las expansiones de memoria, módems tradicionales, modem wifi. Y podría seguir mucho tiempo más.
Siempre fueron un pequeño misterio cómo funcionan por dentro, de qué circuitos de la máquina se valen y sobre todo ¡Cómo se usan! ¡Más de uno tiene alguna función oculta que todavía al día de hoy no descubrimos!.
Qué vamos a ver
En este viaje vamos a estudiar:
Nuevos dispositivos de entrada salida como ser:
Adaptadores VGA como el Apollo 64+.
Sd2iec para conectar una sd card a tu Commodore.
Pi1541 para tener una 1541 con sdcard que respete todos los vericuetos e idiosincrasias de nuestra querida 1541.
El clásico Sánguche (leer con voz de yo quiero un sangucheee) S-Video a RGB a HDMI.
Dispositivos modernísimos como ser:
El cartucho Ultimate II+, una gran navaja suiza.
Modem wifi para acceder a una bbs a través de Internet.
VersaCart para poder armar tu propio cartucho.
La Ram Expansion Unit (REU) a través de una raspberry pi.
Joysticks modernos con microswitches.
IRQHack.
Dispositivos Clásicos como ser:
La Jabonera de Reset.
El cartucho CPM.
El clásico modem de Commodore.
La REU de ampliación de memoria 1750.
Joystick Colossus.
Turbo Cartridge.
FastLoad.
No te preocupes si no entendiste ni la mitad de los acrónimos, esta serie es para vos.
Bienvenidos
En fin tenemos para divertirnos un buen rato y aprender cada día más de nuestra querida Commodore 64. Así que para todos los que siempre quisieron saber cómo funcionan esos maravillosos chiches que usa nuestra Commodore, así como para los que recién los están descubriendo ahora, les pido que me acompañen en esta nueva aventura.
Saludos
Carlinho de OsoLabs
En Video
Aquí puede encontrar el video Introductorio para la nueva serie.
Es miércoles por la noche y te juntaste con un par de amigos. Pidieron cervezas y un par de pizzas. Tienen una PC con varios emuladores retro o quizás una Nintendo 64 original con una buena cantidad de joysticks. ¿Planazo? ¡Planazo!
Las virtudes del couch-gaming
¡Plot-twist! A diferencia de lo que piensa tu tío Roberto (que cree que todo tiempo pasado fue mejor) ni los videojuegos generan violencia, ni se tratan únicamente de perder el tiempo. De hecho, esconden miles de ventajas disfrazadas detrás del “son sólo jueguitos”.
Pero hoy no venimos a hablar de las ventajas del gaming como propuesta lúdica e intelectual (cómo los juegos afinan las habilidades cognitivas o su comprobado poder antiestrés, por mencionar sólo dos beneficios). Sino que vamos a presentar, específicamente, las virtudes del couch-gaming.
El término “couch-gaming” hace referencia a dos cosas. Primero, al simple hecho de jugar videojuegos desde la comodidad de un sillón. Por eso, el concepto suele ser sinónimo de las consolas: uno y su joystick fundiéndose en un acolchonado sillón frente a un televisor montado en una pared.
Una típica noche de coach-gaming en la Casa Sívori
Sin embargo, también podemos categorizar a ciertos juegos como “couch-games”, siendo aquellos que funcionan mucho mejor cuando se experimentan con uno o más jugadores que se encuentran, físicamente, en un mismo lugar.
Este tipo de juegos suelen promover más la risa y la competencia enérgica. A su vez, son propuestas únicas donde el foco está puesto en la interacción social, antes que en la virtual.
Lamentablemente, el couch-gaming (esto es: los buenos juegos para viciar con amigos desde el sillón) son cada vez más raros hoy en día debido a la popularidad cada vez mayor y la amplia accesibilidad del juego en línea.
Una lan-party con mis hermanos viciando Doom 2, allá por principios de los 2000´s
Afortunadamente: para sacarse la picazón del vicio, todavía existen los videojuegos retro, sean emulados o en su consola original. ¿Cuáles son los mejores juegos retro para couch-gaming? ¡Veamos!
***
Snow Bros (1990)
Para aquellos que buscan un buen desafío competitivo, Snow Bros es un título ideal. Originalmente lanzado para arcades en Japón, allá por 1990, este juego rápidamente llegó a varias consolas. Encontramos su mejor versión en la Sega Genesis, donde existen 20 niveles adicionales.
Snowbros es increíblemente divertido en modo cooperativo. Dos hermanos muñecos de nieve deben eliminar a todos los enemigos de cada nivel para salvar a unas princesas. Esto se consigue arrojándoles nieve –que los transforma en bolas de nieve– y luego haciéndolos rodar por el escenario. Una falopa hermosa.
Mi hijo Benjamín jugando al Snow Bros en Espacio TEC
Es cierto que Snow Bros resulta poco original en comparación con otros títulos anteriores (recuerda al clásico Bubble Bobble y al Ice Climber) pero eso no lo hace menos adictivo. Arranca muy tranqui y pronto se vuelve durísimo… especialmente cuando nos enfrentamos a los jefes finales (que aparecen en cada piso múltiplo de diez).
Puede que hoy un favorito indie sea Cuphead, aquel run-and-gun que es tan tremendamente difícil como magnífico (con mi hermano Tomás le dedicamos 14 sufridas horas para poder darlo vuelta). Pero todavía más horas le metimos al Snow Bros durante nuestra infancia e, incluso, hace no tanto tiempo en algunos bares con fichines de la ciudad porteña.
Probablemente vas a morir mucho en el Snow Bros. Pero se puede encontrar solidaridad al superar obstáculos tan imposibles al lado de un amigo.
Super Bomberman 3 (1995)
Ahora: si lo que buscás es caos puro, también tenés varios opciones de couch-gaming. Ejemplos de títulos más modernos serían algo como Overcooked o la franquicia de Super Smash Bros. Aunque si queremos remontarnos al pasado, no hay con qué darle: es Super Bomberman.
En este caso yo me inclino por las versiones de Bomberman que llegaron a la Super Nintendo. Super Bomberman 3 es el mejor de los cinco disponibles para la SNES y el primero que permitía el juego de a cuatro (de hecho, permite hasta cinco jugadores, pero uno tiene que ser una PC necesariamente).
Super Bomberman 3 para la Super Nintendo
Era genial poder montar una mascota, cada una con una habilidad especial que la volvía única. Su modo aventura es genial, aunque donde realmente brilla es en la cantidad de horas de sillón que permite. De todas las versiones de Bomberman que existen (y sus inevitables copias) la tercera entrega es la más sólida.
Tetris de Tengen (1989)
Tetris es el videojuego más popular del mundo. Eso está claro y no se discute. Es, realmente, uno de esos pocos juegos cuasi universales que conocen hasta las Tías Martas del mundo. A finales de los ochenta y, sobre todo, durante los noventa, la creación de Alexei Pajitnov conquistó al mundo entero.
Se reconocen, oficialmente, más de 50 versiones de Tetris para diferentes consolas… y eso sin mencionar la bestial cantidad de copias y variantes del juego que se crearon (sí, te estoy hablando a vos… “9999 en 1”).
El torneo de Tetris de Tengen en Espacio TEC, 15 de julio 2023
El Tetris de Tengen es, básicamente, un rip-off de la versión original de Nintendo. Aunque, a diferencia de lo que suele ocurrir con las copias, tenía un par de puntos a su favor: gráficamente era muy superior y además tenía un modo multijugador que permitía jugar con otro amigo o enfrentarte a la computadora. Indudablemente: la versión de Tengen es mejor que la de Nintendo.
Contra (1996)
¡Claro que el ingrato Contra, de la Family Game, tenía que estar entre los mejores juegos retro para couch-gaming! Dos jugadores simultáneos en pantalla, modo cooperativo, ametralladoras, jungla, terroríficos aliens… ¿Algo más se puede pedir?
Este es otro videojuego que no precisa introducción porque es un emblema del gaming. No solo se lo recuerda por su excelente jugabilidad y modo de dos jugadores, sino también por la dificultad que presentaba. El Contra no perdonaba ningún error.
El Contra de Family Game / NES
Por otro lado, la introducción de lo que luego se conocería como el “Código Konami” es una estampa de los videojuegos. Aunque el Contra no fue el primero en utilizar las famosas combinaciones de teclas para sacar algún truco (el primero, en realidad, fue el “Gradius”), éste fue el que lo popularizó.
¡Tirabas arriba, arriba, abajo, abajo, izquierda, derecha, izquierda, derecha, B, A y tenías 30 vidas!
Este videojuego es muy frustrante aunque también increíblemente gratificante cuando comenzás a sentir que estás jugando mejor. Las balas de los enemigos son blancas y difíciles de ver. Hay enemigos montados en metralletas que te disparan apenas te ven, los power-ups se te van si morís, hay saltos que requieren de mucha habilidad y hasta aparecen enemigos por detrás. Y, sin embargo, yo no me cansaba de jugarlo con amigos.
Battletoads and Double-Dragon (1993)
Los beat ´em ups son ideales para el couch-gaming. Streets of Rage, Golden Axe o las Tortugas Ninja son todos excelentes candidatos. Yo, sin embargo, me quedo con el Battletoads and Double-Dragon de 1993.
Si bien es originalmente de la NES (o Family Game), su mejor versión es la que encontramos en la morocha de Sega. Se trata de un tremendo videojuego beat ‘em up que presentaba un crossover entre la saga de Battletoads (el juego históricamente más jodido de la historia) y la de Double Dragon.
Battletoads and Double-Dragon para Sega Genesis
Battletoads and Double-Dragon todavía se sostiene hoy en día. Su excelente jugabilidad –que respeta las características de ambas franquicias– lo convierten en uno de los mejores títulos para jugar con un amigo tirados en el sillón.
Me gustan mucho los diseños de los niveles, que eran todos diferentes. Por ejemplo, el cuarto nivel es una batalla aérea. Algunos son de vista lateral, mientras que otros son de vista isométrica. Infaltable el escenario de las motos, que –por suerte– no es tan imposible como el de Battletoads original.
Mario Bros (1983)
Me dejé para el final el que, para mí, es una bandera del couch-gaming. Mario Bros es un videojuego de arcade desarrollado y publicado por Nintendo en 1983. Tuvo su versión casera para la NES que es la que más jugué de chico.
La premisa gira en torno a los fontaneros gemelos, Mario y Luigi, que se encuentran en el sistema de alcantarillado de Nueva York. Las alcantarillas son invadidas por oleadas de enemigos, a los que hay que derrotar para conseguir monedas.
Fue la tercera aparición de Mario (antes era “Jumpman” en los primeros Donkey Kong) y también se considera el primer juego en hacer debutar al personaje de Luigi.
Benja jugando Mario Bros en Espacio TEC
Los elementos introducidos en este mítico Mario Bros., como las tuberías, monedas giratorias, tortugas que se pueden voltear sobre sus espaldas y su hermano Luigi, se trasladaron luego al Super Mario Bros. (de 1985) y se terminaron convirtiendo en elementos fundamentales de la franquicia.
En Mario Bros la jugabilidad es tan fluida como cabría esperar de un título de Nintendo, pero la acción puede volverse bastante agitada a medida que avanzás. Acá el modo cooperativo es la experiencia completa y una herramienta clave para ayudarse mutuamente a sobrevivir.
No es ningún secreto que el juego original de Mario está empezando a parecer un poco anticuado. Sin embargo, es difícil ignorar su factor de diversión. Si lográs sumar a un segundo jugador, es probable que estés ante la mejor experiencia couch-gaming que existe.
***
Por supuesto, TODO este vicio hermoso (y mucho más) está disponible en ESPACIO TEC, Thompson 665, Bahía Blanca.
Estos son sólo algunos de los mejores juegos retro para jugar desde el sillón. ¿Cuál otro agregarías a la lista? ¡Contanos!
Continuamos este estudio comparativo del 6502 vs el 6510 en este caso descubriendo la principal diferencia entre el 6510 y el 6502 los pines de Input/Output que posee el 6510 y no posee el 6502.
Les dejo el link al articulo anterior en la serie, y al final como siempre los links a todos los artículos de la misma.
La I/O ports son 6 puertos/pines/registros que pueden funcionar como Input o como Output en el procesador 6510.
P0 a P5 Pines de I/O Port. Este procesador en su más marcada diferencia presenta en estos pines 6 conexiones bidireccionales con periféricos como si fuera un pequeño 6522 VIA o un 6526 CIA.
Cómo se utilizan
Para poder utilizarlos se debe especificar si los vamos a usar como Input o Output. Esto se hace de una forma muy particular. El procesador 6510 a diferencia de todo el resto de la línea 6500 utiliza para sí dos direcciones de memoria que nunca pueden ser parte de la RAM o ROM y son las primeras dos direcciones la $0000 y la $0001.
La dirección $0000 es llamado DATA DIRECTION Register. En este vamos a especificar para cada uno de los seis pines si lo queremos utilizar como Input o como Output. Si el valor es 0 queda como Input y si es 1 queda como output. Si lo vamos utilizar como Input conectarlo con una resistencia a 0 Volts o +5 Volts mientras no se utilice para no tener inputs flotando. Esta especificación se realiza escribiendo un byte a la dirección $0000.
Bit
Pin
Input/Output
0
0
0/1
1
1
0/1
2
2
0/1
3
3
0/1
4
4
0/1
5
5
0/1
6
No Utilizado
No Utilizado
7
No Utilizado
No Utilizado
Por ejemplo si quisiéramos habilitar el pin 2 y el 4 como Output y el resto como Inputs deberíamos escribir el número binario %00010100 correspondiente al hexadecimal $18. Podríamos configurar al 6510 con la siguiente instrucción en assembler
lda #%00010100 ; cargamos al acumulador el número en binario
; antecedido por % para indicar que está em binário
; y # para indicar que es un número y no una posición
; de memoria
sta $00 ;guardamos el contenido del acumulador en el
;registro interno de memoria DATA DIRECTION REGISTER
Si ahora queremos leer la información de los I/O registers necesitamos utilizar otra dirección de memoria la $0001 también llamado de I/O port register.
Bit
Pin
Input/Output
0
0
0/1
1
1
0/1
2
2
0/1
3
3
0/1
4
4
0/1
5
5
0/1
6
No Utilizado
No Utilizado
7
No Utilizado
No Utilizado
Podemos cargar los valores de este registro al acumulador con el siguiente comando para leer por ejemplo:
Lda $01 ; lee el I/O port register
Sta $0400 ; escribe el contenido del acumulador en la posición
; de memoria $0400
Para poder escribir en este registro y por consecuencia cambiar el valor de los pines con valor 1 a +5 Volts o High usamos el siguiente programa assembler.
lda #%00111111 ;va a escribir todos los bits del I/O port para que
;sus pines sean +5 Volts
sta $01 ;escribir el registro
Cómo funciona en la Commodore 64
La Commodore 64 y su procesador 6510 pueden direccionar hasta 65536 direcciones de memoria, los famosos 64KB, pero ¿cuántos kb tenemos en la Commodore?
Kbytes
Función
64
RAM
8
BASIC ROM
8
KERNAL ROM
4
Character Generator
4
I/O (Vic II, SID, CIA 1 y 2, Puerto de Cartucho)
Esto nos da 64+8+8+4+4 = 88Kb para direccionar, lo cual es un problema ya que tendríamos 24Kb que no podrían ser direccionados, ahí entran los I/O Ports para ayudarnos.
Estos cumplen dos funciones: manejar parte del datasette y direccionar esta memoria extra para que puedan caber las 65536 direcciones.
Los puertos en cuanto a su configuración de Input o Output así se encuentran configurados en la Commodore.
Bit
Pin
Input/Output
Nombre en C64
0
0
1 output
LORAM
1
1
1 output
HIRAM
2
2
1 output
CHAREN
3
3
1 output
Cassette Write
4
4
0 input
Cassette Sense
5
5
1 output
Cassette Motor
6
No Utilizado
No Utilizado
No Utilizado
7
No Utilizado
No Utilizado
No Utilizado
Manejo de Memoria
Memorias que se superponen, como vimos anteriormente veamos cómo es que estas memorias se están superponiendo y en qué direcciones.
Nombre
Direcciones
Kbytes
Función 1
Función 2
Función 3
Low Memory
$0000-$9FFF
40kb
RAM
BASIC
$A000-$BFFF
8kb
RAM
BASIC ROM
High Memory
$C000-$CFFF
4kb
RAM
I/O
$D000-$DFFF
4kb
RAM
I/O
CHAR ROM
KERNAL
$E000-$FFFF
8kb
RAM
KERNAL ROM
Como se superponen estas memorias se controla principalmente con los I/O ports de P0 a P2.
P0 – Bit 0 del registro $0001, LOW RAM. Si este bit es 0 tenemos acceso a la RAM si es 1 a la BASIC ROM. ¿Cuándo lo apago? ,cuando creo un programa en código máquina con lo que aprovecho 8kb extras de ram.
P1 – Bit 1 del registro $0001, HIGH RAM. Si este bit es 0 tenemos acceso a la RAM si es 1 al KERNAL ROM. ¿Cuándo lo apago? ,cuando creo un programa en código máquina y no necesito ninguna rutina del KERNAL con lo que aprovecho 8kb extras de ram
P2 – Bit 2 del registro $0001, LOW RAM. Si este bit es 0 tenemos acceso a los I/O devices (VIC II, SID, CIA, etc) si es 1 a la ROM de character generation donde se almacenan los 2 juegos de caracteres de la commodore. Generalmente nunca debemos acceder a la ROM del CHAR GEN ya que el VIC II puede acceder a esta directamente para dibujar los caracteres en pantalla. Un motivo válido para acceder es leerla para copiarla en memoria y modificar el juego de caracteres.
Aquí tenemos otro gráfico que muestra mejor la configuración de los 3 registros y que efectos tendrían en memoria.
A continuación les incluyo un programa en BASIC que les va a permitir apagar momentáneamente el basic y el kernel escribir y leer en la RAM oculta y volver a activar el basic y el kernel sacado del libro PEEKS & POKES para Commodore 64.
Para leer la RAM escondida usar:
PRINT USR(ADDRESS).
Para escribir haciendo un POKE usar:
SYS 715,ADDRESS,BYTE
Y este es el programa en código máquina con su loader en basic:
10 DATA 165,20,72,165,21,72,32,247,183,120,165,141,252,133
20 DATA 1,160,0,177,20,168,165,1,9,3,133,1,88,104,133,21
30 DATA 104,133,20,76,162,179,32,253,174,32,138,173,32,247
40 DATA 183,32,253,174,32,158,183,165,1,41,252,133,1,138
50 DATA 160,0,145,20,165,1,9,3,133,1,96
60 FOR 1=678 TO 747: READ A: POKE I, A: NEXT I
70 POKE 785,166:POKE 786,2
Manejo de Datasette
El datasette es manejado por 3 puertos del 6510 y la CIA. Los I/O Ports P3 a P5 están conectados a las funciones de CASSETTE Write, CASSETTE Sense, y CASSETTE Motor.
P3 – Bit 3 del registro $0001, Cassette Write. Este puerto es el que se utiliza cuando vamos a grabar información al cassette enviando pulsos con la información a grabar a través de este pin.
P4 – Bit 4 del registro $0001, Cassette Sense. Este puerto mide si alguna tecla fue presionada en el datasette. Cuando vemos el famoso mensaje “PRESS PLAY ON TAPE” el procesador está esperando que presionemos la tecla play en el datasette. Al presionar esta tecla y como el puerto es un input se lee un 0 Volts y el datasette sabe que una tecla fue presionada. Como podemos presionar 3 teclas en el datasette (play, rewind, forward) y sólo tenemos una línea de Casette Sense se produce el efecto curioso de que si presionamos rewind o forward la Commodore piensa que presionamos play y trata de cargar el programa de casette.
P5 – Bit 5 del registro $0001, Cassette Motor. Este puerto activa el motor del datasette cuando se presiona una tecla en el datasette, si alguna vez hicieron la prueba de presionar el botón de play y nada funciona si no está conectado a la Commodore no es sólo por una falta de power sino por que la tecla play no hace nada sólo el pin P5 activa el motor del datasette.
Si estudiamos el circuito exacto conectado a este puerto vemos que en realidad el procesador no prende el motor si no que activa un transistor que switchea 9 Volts para que estos sí vayan al conector del datasette y alimenten el motor
Para completar la discusión del datasette nos falta sólo el puerto de cassette read pero este está conectado al puerto /flag de la CIA1 y está fuera del contexto de los puerto I/O del 6510 y será analizado en un próximo artículo.
Estudiando los I/O Ports visualmente
Para poder estudiar visualmente cómo se conectan y funcionan los I/O ports del 6510 les dejo este video que complementa al artículo.