Bajo un océano de bits, mes XXIV

Por Javier Albizu, 27 Noviembre, 2019
Al igual que lleva sucediendo durante los últimos meses, afrontamos las últimas acometidas de los distintos retos presentes con una capacidad de concentración cada vez más mermada.
Básicamente, me estos limitando a hacer acopio de enlaces para cuando vengan días mejores sin ser capaz de procesar ninguno de ellos como sería debido.

Aun así hemos logrado algo parecido a pequeños logros. Es lo que tienen la cabezonería y la repetición.

A lo largo de este mes, el profe1 ha terminado con las clases de ensamblador para Z80 y ha vuelto a comenzar con las clases de C++. Podría decir que todo eso “ya lo he visto” en sus vídeos de otros años, pero con cada nueva iteración va añadiendo explicaciones adicionales y, si bien en ediciones anteriores ya había hablado de la creación de Makefiles, el enfoque que están teniendo las lecciones sobre ellos y el lenguaje de maros en esta nueva tanda se me hace nuevo, complejo, clarificador al mismo tiempo.
Por supuesto, cuando me ponga con mis propios scripts de compilación con Make me daré cuenta de que no he entendido nada y tendré que revisarme una vez más estos vídeos, pero si que se van descubriendo conceptos que hasta ahora estaban ofuscados dentro de las diferentes capas de abstracción.

Por su parte, en Programación retro para el C642 han terminado con las entradas dedicadas a la creación de un clon del Asteriods para el Commodore 64. He de reconocer que no he leído las entradas, pero el PDF en el que he recogido todo el material de ese blog ya ocupa trescientas veinticinco páginas.

En su momento metí la primera parte de ese documento en mi ebook, pero me quedé bloqueado en las entradas que hacían referencia a la gestión de la memoria del C64. Algo similar a esto ya me había sucedido cuando me puse con la guía del usuario del propio ordenador, así que, hasta cierto punto, era el resultado esperado.

Dado lo limitado de mi capacidad de asimilación igual tengo que dar ese paso que llevo retrasando desde hace mucho y saltar hasta el nivel físico antes de continuar con las capas superiores.
En estos días Ben Eater3 está con su proyecto de hacer un ordenador de 8 bits alrededor de un 6502 y, al mismo tiempo, en su página ofrece kits para replicar los montajes de hardware que hace en su canal. Hacer algo de esto es una cosa que me lleva tentando desde hace mucho, pero no quiero limitarme a replicar lo que él hace. No quiero montar un mueble de Ikea recomponer un puzzle para que sea igual que la foto que viene en su envoltorio. Tengo que empezar de menos a más. Entender cómo funcionan la electrónica sobre las que se construyen las puertas lógicas y hacer circuitos sencillos. Entender cómo se almacena la información y la manera en la que se comunican los diferentes componentes.
Hace tiempo pedí a un amigo que se mueve en el territorio de la electrónica que me recomendase algún oscioloscopio4 con unas prestaciones mínimas como para poder meterme en un berenjenal de este tipo, pero aún ando dudando en el qué, el cómo y el cuándo meterme con ello a fondo.
Lo que tengo claro que este no es el momento, pero también tengo claro que ese ”ahora” no llegará hasta que yo lo decida así. No es una cuestión de magia, serendipias o musas.

Por el camino también se me han cruzado otro par de proyectos la mar de interesantes5: Entornos de desarrollo con los que programar cosicas para el Amiga y la MegaDrive. Herramientas con las que meterme más adelante; cuando entienda un poco más del hierro que tienen debajo.
Eso sí, últimamente estoy encontrándome bastante a menudo VASM, un compilador cruzado para ensamblador de distintos micros viejunos que, a pesar de que está a punto de cumplir la mayoría de edad, parece que ahora es cuando va ganado tracción.

Para terminar de arreglar las cosas, a principios de mes me apunté al curso intensivo online de once semanas “Introduction to Computer Science”6 que ofrece Havard a través de la plataforma EDX.
A pesar de no haber sido capaz de mantener el ritmo de dedicación que se recomienza (veinte horas semanales) sí que he sido capaz de solventar algunos de los ejercicios que plantean. Seguramente no terminaré en el plazo indicado, pero espero que al menos me sirva para comenzar a entender o familiarizarme con conceptos básicos de otros lenguajes como el SQL el PHP o el CSS.

Más allá de todas estas disquisiciones y movidas varias también he seguido con el resto de canales habituales que suelen aparecer por aquí7.
Porque ¿por qué centrarme en una única cosa cuando existe todo un universo de dispersión?

Enlaces:

1. El Profe

CPC
- Control avanzado de las interrupciones [#ASM #Z80]
- Revisión de música y uso de interrupciones [#ASM #Z80]
- Pantallas de carga en 3 minutos con CPCtelera [#ASM #Z80]
- Fuentes de texto personalizadas con CPCtelera [#ASM #Z80]

C y C++
- C y C++ : Compilación manual, extern "C", includes y mangling
- C++ : Compilación, enlazado y makefiles básicos (I)
- C++ : Compilación y makefiles básicos (II)
- C++ : librerías, dynamic link y búsqueda de símbolos de enlace
- C++ : Dibujando sprites manualmente con tinyPTC
- C++ : Makefiles con macros avanzadas y reglas generadas

2. Programando un clon de Asteroids en ensamblador para C64
- Asteroids: movimiento de los sprites por toda la pantalla (paso III)
- Asteroids: movimiento de los sprites por toda la pantalla (paso IV)
- Asteroids: el reto de los asteroides que siempre se expanden
- Asteroids: niveles de dificultad progresivos
- Asteroids: pantalla inicial y pantalla de juego – nueva pantalla
- Asteroids: pantalla inicial y pantalla de juego – comienzo de partida
- Asteroids: pantalla inicial y pantalla de juego – final de partida
- Asteroids: pantalla inicial y pantalla de juego – inicializaciones
- Asteroids: una pantalla inicial un poco más sofisticada
- Asteroids: sonido y música – repaso del SID
- Asteroids: sonido y música – visión global
- Asteroids: sonido y música – inicialización del SID y las voces
- Asteroids: sonido y música – tablas de definición de los sonidos
- Asteroids: sonido y música – eventos con sonido
- Asteroids: sonido y música – reproducción de los sonidos
- Asteroids: presentación de números en decimal – repaso de conceptos
- Asteroids: presentación de números en decimal – posible uso de BCD
- Asteroids: presentación de números en decimal – velocidad, ángulo y vidas
- Asteroids: presentación de números en decimal – coordenadas X e Y
- Asteroids: presentación de números en decimal – puntos y record
- Asteroids: algunas sugerencias para el lector
- Asteroids: el reto de los asteroides que siempre se expanden (solución)
- Asteroids: mapa de memoria y librerías mejoradas
- Asteroids: conclusiones

3. Ben Eater
- How do CPUs read machine code? — 6502 part 2
- Assembly language vs. machine code — 6502 part 3
- Kit 8 bits Computer
- Kit 6502

4. Osciloscopios
- HANTEK DS5102P
- RIGOL DS2202A
- SIGLENT SDS2202X-E
- TEKTRONIX TBS1102B
- KEYSIGHT DSOX1102A

5. Programación para plataformas retro
- Want to code Amiga games in Assembler? If so then read on!
- Amiga Game Development
- VASM
- Cómo hacer un videojuego para la SEGA Mega Drive original en pleno 2019
- SGDK
- GenDev

6. CS50 - Introduction to Computer Science

7. El resto de los habituales

GDC
- Parkour: How to Improve Freedom of Movement in First-Person Games in 20 Simple Steps

Dan Root
- The Animation of Indivisible
- Indivisible Animated Opening by Studio TRIGGER and Titmouse

New Frame Plus
- The Effects Animation of Hollow Knight

The learning circuit
- The Learning Circuit - How To Drive A 7-segment Display
- The Learning Circuit - Combinational Logic Devices
- The Learning Circuit - How Flip Flops Work

El contenido de este campo se mantiene privado y no se mostrará públicamente.

Plain text

  • No se permiten etiquetas HTML.
  • Las direcciones de correos electrónicos y páginas web se convierten en enlaces automáticamente.
  • Saltos automáticos de líneas y de párrafos.