Saber dónde escribir un cero: optimizaciones mínimas con gran impacto

Muchas mejoras de rendimiento en software no exigen algoritmos complejos ni miles de líneas de código; basta a veces con un cambio minúsculo, como escribir un solo cero en el lugar correcto. El autor, ingeniero con experiencia optimizando juegos para la Xbox original, relata dos casos reales en los

Guía técnica para crear ejecutables ELF extremadamente pequeños en Linux

Este documento técnico detalla los métodos avanzados para reducir el tamaño de los ejecutables en formato ELF (Executable and Linkable Format) en sistemas operativos Linux, específicamente bajo la arquitectura Intel x86. El objetivo principal es eliminar el exceso de bytes y la sobrecarga innecesari

El arte de CHIP-8: guía práctica del conjunto de instrucciones

## CHIP-8: medio siglo después, el lenguaje que enseña a programar máquinas virtuales CHIP-8, un lenguaje de programación creado en 1977 para el kit de computadora COSMAC VIP, sigue siendo una de las herramientas pedagógicas más utilizadas por quienes se inician en la escritura de emuladores. Su pr

Recorrido por el ZX Spectrum en ensamblador: modo texto

Este artículo abre una serie dedicada a la programación en lenguaje máquina del ZX Spectrum, tomando como base el modelo de 48K pero con técnicas compatibles también con las versiones de 16K y 128K. A diferencia de plataformas como Commodore 8-bits, MSX o el IBM PC —que ofrecían tablas de saltos bie

Cómo se codifican realmente las instrucciones ARM64

Este artículo explica, paso a paso y sobre ejemplos reales ejecutados en Apple Silicon, cómo el procesador ARM64 codifica cada instrucción en una palabra fija de 32 bits. A diferencia de x86, donde las instrucciones pueden ocupar entre uno y quince bytes, AArch64 utiliza siempre cuatro bytes por ins

La memoria segmentada del 8086: una buena idea que los programadores arruinaron

El procesador 8086 de Intel podía direccionar 1 MB de memoria, una cifra enorme frente a los 64 KB del 8080. Para lograrlo sin cambiar los registros de 16 bits, Intel añadió registros de segmento cuyo valor se desplazaba cuatro bits y se sumaba a un desplazamiento de 16 bits, generando así direccion

El PDP-11: el minicomputador que sentó las bases de la informática moderna

El PDP-11, presentado en 1970 por Digital Equipment Corporation, fue el minicomputador más influyente y exitoso de su época, y resulta clave para entender la evolución de la arquitectura informática. Este artículo explica en qué consistía, cómo funcionaba y por qué sigue siendo relevante. Lanzado en

SBCL implementa máquinas virtuales ultrarrápidas con stack de solo 8 ranuras

Este artículo de Paul Khuong explora una técnica innovadora para implementar máquinas virtuales basadas en stack, utilizando SBCL (Steel Bank Common Lisp) como plataforma de experimentación. La idea central es aprovechar un stack muy pequeño (solo 8 ranuras) para evitar el movimiento de datos durant

Detectan DOSBox desde su interior: un truco revelado

Este artículo explora una técnica poco convencional para detectar si un programa se está ejecutando dentro del emulador DOSBox. DOSBox es un emulador de MS-DOS que permite ejecutar software antiguo de DOS en sistemas modernos. Aunque intenta emular MS-DOS de manera precisa, presenta peculiaridades q

Proyecto explora el chip DCJ11: belleza y programación

El proyecto DCJ11HackPlus es una fascinante iniciativa de Paula Maddox que se basa en el chip DCJ11, un procesador que, según la autora, es simplemente "hermoso". Este proyecto no es solo una demostración de aprecio por la estética del hardware, sino también una exploración profunda de la arquitectu

6o6: Virtualización 6502 más veloz para emuladores retro

Este artículo del blog detalla una actualización de la biblioteca `6o6`, una herramienta innovadora que permite la virtualización de un procesador MOS Technology 6502 dentro de otro sistema 6502. En esencia, `6o6` permite ejecutar software diseñado para un 6502 (como el que se encuentra en un Apple-

Fuente 'Z80 Sans' traduce código a símbolos

Un desarrollador ha creado una fuente innovadora, llamada Z80 Sans, que traduce instrucciones de ensamblaje Z80 en glifos legibles. La fuente utiliza la Tabla de Sustitución de Glifos (GSUB) y la Tabla de Posicionamiento de Glifos (GPOS) de OpenType para lograr esta conversión, transformando secuenc

Desvelan secretos del clásico Manic Miner

El proyecto "Manic Miner: Índice" es una documentación exhaustiva y detallada del videojuego clásico "Manic Miner" (1984) para la plataforma ZX Spectrum. Su valor radica en proporcionar un análisis profundo del código interno del juego, algo que antes era prácticamente inaccesible para la mayoría de

TAL: Ensamblador seguro para software crítico

## Lenguaje Ensamblador Tipado (TAL): Un Puente Seguro entre Lenguajes de Alto Nivel y Hardware ¿Qué es y por qué es importante? En el mundo del desarrollo de software, especialmente en áreas críticas como sistemas operativos, kernels móviles y aplicaciones que requieren una seguridad extrema, la

Revive Quake: Compilación al Estilo 1997

La recreación de la experiencia de desarrollo de Quake en 1997 revela la evolución técnica de id Software y los desafíos de la ingeniería de software de la época. El artículo detalla cómo el juego evolucionó desde entornos HP/NeXT y DEC Alpha hasta la migración a Intergraph y Windows NT, un cambio i