Este descubrimiento atribuido a David Plummer, ingeniero de sistemas que trabajó en Microsoft, es un excelente ejemplo de cómo el software histórico puede seguir sorprendiéndonos décadas después. Vamos a desglosar lo más importante y, además, explicar cómo era posible que MS-DOS generara gráficos básicos y cómo puedes probarlo hoy.
🔍 ¿MS-DOS podía generar gráficos?
✅ Sí, pero con matices.
MS-DOS como sistema operativo en sí no tenía una API gráfica incorporada como Windows. Era una plataforma basada en texto, pero esto no impedía que los programas escritos para MS-DOS hicieran uso directo del hardware gráfico.
La clave aquí es el acceso directo a memoria de video y la programación en modo gráfico mediante BIOS o directamente vía interrupciones, como:
INT 10h
(BIOS video services)- Acceso directo al framebuffer de la tarjeta gráfica (por ejemplo, en modo CGA, EGA o VGA)
🎨 ¿Qué tipo de gráficos se podían generar?
Aunque no había una biblioteca estándar como GDI o DirectX, muchos programadores accedían directamente a los registros de video para:
- Dibujar líneas y círculos (usando algoritmos como Bresenham)
- Dibujar rectángulos, polígonos
- Mostrar sprites
- Crear juegos simples como Pong, Snake, Tetris, etc.
- Usar paletas de colores limitadas, como los 16 colores en modo VGA 13h (320×200)
🧠 ¿Cómo funcionaba técnicamente?
📍 Modo gráfico en VGA (por ejemplo, modo 13h)
Podías usar interrupciones para cambiar de modo texto a modo gráfico:
asmCopiarEditarMOV AX, 13h
INT 10h ; Cambia a modo 13h: 320x200, 256 colores
Luego, para pintar un píxel en coordenadas (X,Y)
con color C
:
asmCopiarEditarMOV AX, 0A000h
MOV ES, AX ; Segmento de video
MOV DI, [Y * 320 + X]
MOV AL, C
STOSB ; Guarda el color en el framebuffer
Esto lo hacían juegos clásicos como Commander Keen, Doom, etc., que funcionaban bajo MS-DOS, sin GUI.
🧪 ¿Qué comandos mostró Plummer?
Aunque MS-DOS no tenía comandos nativos como DRAW LINE
, se podían hacer pequeños binarios en ensamblador o C, o usar herramientas como QBASIC:
🔧 Usando QBASIC (incluido en DOS 5.0 y 6.x)
basicCopiarEditarSCREEN 12
LINE (10, 10)-(200, 200), 4
CIRCLE (150, 100), 50, 2
PAINT (150, 100), 1, 2
SCREEN 12
: modo gráfico 640×480, 16 coloresLINE
,CIRCLE
,PAINT
: comandos de dibujo
Esto sí era gráfico en MS-DOS, aunque no accesible desde el shell de comandos por defecto. QBASIC era una herramienta oculta de potencial gráfico.
🤔 ¿Por qué no fue documentado o explotado?
- Enfoque comercial: MS-DOS estaba pensado para negocios, no juegos.
- Hardware limitado: No todos los equipos podían usar estos modos.
- Windows se impuso rápido: Desde 1985 ya se apostaba por GUI.
🧪 ¿Cómo puedes probarlo hoy?
✅ Opción 1: Emulador en tu navegador
✅ Opción 2: Instalar MS-DOS en VirtualBox
- Descargar imagen ISO de MS-DOS 6.22
- Crear VM en VirtualBox
- Instalar QBASIC y probar comandos
Este hallazgo es una lección de humildad tecnológica: incluso sistemas limitados como MS-DOS escondían capacidades que no se documentaron o no fueron aprovechadas. El hecho de que aún hoy podamos descubrir estas funciones ocultas nos recuerda que el software es tan potente como la creatividad de quien lo explora.