Cargando…
TS-SYS-05 // COMMODORE 128 · BASIC v7.0 · VIC-IIe

C-128 WorkSpace

C-128 WorkSpace es un escritorio gráfico para el Commodore 128, escrito entero en BASIC v7.0. Barra de menús, doce herramientas tras doce iconos PETSCII, ventanas con sombra, diálogos, tres temas y un fondo texturado — sobre un VIC-IIe a 1 MHz, en cuarenta columnas, sin REU, sin monitor de 80 columnas y sin un solo bitmap. Dibuja haciendo POKE de códigos de pantalla directamente en la RAM de pantalla y de color, y arranca en unos tres segundos.

← VOLVER A SISTEMAS
Un escritorio que el C128 nunca tuvo. En BASIC.
v1.0 · AÚN NO PÚBLICOCommodore 128 · BASIC v7.0VS GEOS 128
12HERRAMIENTAS · 40 COL
17APPS · 80 COL
~3sARRANQUE
~190BYTES ML
GRATIS AL PUBLICARSE
commodore1902A
EL ESCRITORIO · 40 COLUMNASDoce herramientas, Classic Blue, fondo de cuadros · la pantalla que el disco blitea al arrancar
CAMBIA DE CANAL PARA VER MÁS
01 // QUÉ ES
El sistema, sin marketing
ESCRITORIO · COMMODORE 128

El C128 vino con más máquina de la que nadie le escribió software: un 8502, 128 KB, dos chips de vídeo y un BASIC lo bastante bueno como para programar en serio. Lo que nunca tuvo fue un escritorio que lo pareciera. GEOS era del C64, y pedía ratón y paciencia. WorkSpace es la otra respuesta: teclado y joystick, cuarenta columnas, inmediato.

La regla sobre la que está construido todo: el escritorio de 40 columnas es la interfaz principal y es obligatoria, y tiene que funcionar en una máquina de serie. Sin REU, sin pantalla de 80 columnas, sin bitmaps, sin cartucho, sin librerías modernas, sin dar por hecho un ratón. Si un C128 recién sacado de la caja en 1985 no puede con ello, no sale.

Hay una segunda edición para quien sí tiene el monitor de 80 columnas: WorkSpace OS 128 v2.1, sobre el VDC a 2 MHz, con un lanzador de dos paneles y diecisiete aplicaciones. Comparte con el escritorio de 40 columnas la lógica de las herramientas y cambia solo la capa de presentación, que es justo el motivo de separarlas: el renderizador, el gestor de temas, el de diálogos y el servicio de disco son capas reemplazables, así que se puede reescribir la interfaz sin tocar una sola herramienta.

Un escritorio para una máquina que nunca tuvo uno: cuarenta columnas, un megahercio, y abre en tres segundos.
02 // QUÉ HACE
Lo que puedes hacer con él
8 CAPACIDADES
/01

DOCE HERRAMIENTAS

files (un navegador de disco que ejecuta, ve, copia, renombra y borra) · calc · system (informe de CPU, MMU y VDC con mapa de bancos en color) · memory (visor hexadecimal) · clock · music (SID) · speed (benchmark de 1 frente a 2 MHz) · sprite (editor de 24×21 que guarda con SPRSAV) · disk (estado DOS, validar, renombrar, formatear) · setup · help · editor (editor de texto SEQ por líneas, con carga y guardado en disco).

/02

BARRA DE MENÚS DESPLEGABLES

F1 a F5 abren Disk, Tools, Media, View y Help; los cursores o el joystick mueven, RETURN elige, ←/→ cambian de menú, ESC cierra. Los menús son un registro guiado por datos: añadir una entrada es una línea de DATA.

/03

JOYSTICK O TECLADO

El resalte del lanzador se mueve con los cursores o con un joystick en el puerto 2, y solo se repintan las dos casillas que han cambiado: la que dejas y la que ocupas.

/04

TRES TEMAS, CUATRO FONDOS

Classic Blue, Dark Terminal y Light GEOS, cada uno una línea en el gestor de temas. La textura del escritorio es cuadros, puntos, malla o liso, y los iconos son placa o plano. Todo se cambia en caliente desde Setup.

/05

UNA PILA DE VENTANAS DE VERDAD

Las ventanas las dibuja una sola primitiva como sombra, marco y título, y los cuatro diálogos —aviso, confirmación, entrada y error— salen de las mismas rutinas. Al salir de una herramienta se restaura el escritorio de debajo en lugar de volver a dibujarlo.

/06

EDICIÓN DE 80 COLUMNAS

WorkSpace OS 128 v2.1 sobre el VDC a 2 MHz: una lista de aplicaciones desplazable, cada una con su chip de color, junto a un panel de información en vivo, un reloj que sigue corriendo mientras navegas y diecisiete apps, entre ellas un mapa de caracteres PETSCII y un conversor dec/hex/binario.

/07

BARRA DE ESTADO

Número de unidad, el modo de vídeo que detecta haciendo PEEK a 215, y un reloj en marcha.

/08

UN DISCO QUE ARRANCA SOLO

c128-apps.d64 abre en un menú de arranque como primer fichero, así que el «montar y ejecutar» de un cartucho cae directamente en él: 1 para el escritorio, 2 para el workspace de 80 columnas.

03 // LAS PANTALLAS DE VERDAD · NO SON MAQUETAS
Dibujadas desde los bytes que el disco blitea
Renderizadas desde DESKSCR/DESKCOL y WSSCR/WSATR — los volcados de códigos de pantalla y color que los programas cargan al arrancar
04 // ARQUITECTURA
Cómo está construido por dentro
INTERNALS
01

POKE, NO PRINT

El renderizador escribe códigos de pantalla y color directamente en 1024 y 55296. Cinco primitivas —cadena, carácter, caja, relleno y ventana— son toda la superficie de dibujo, y cada herramienta se construye encima, así que cambiar el aspecto se cambia en un sitio.

02

TRES RUTINAS 6502 EN $1300

Rellenar, guardar y restaurar, ensambladas a mano, viven en el bloque de RAM libre documentado del C128. El relleno inunda las 1000 celdas de pantalla y las 1000 de color en un SYS; guardar copia el escritorio terminado a un búfer; restaurar lo devuelve de un golpe. Solo tocan RAM de pantalla, RAM de color y sus propios búferes, por debajo del programa BASIC.

03

DECLARAR CADA ESCALAR ANTES DEL DIM

El BASIC del C128 guarda primero los escalares y después los arrays, así que crear un escalar nuevo cuando los arrays ya existen empuja el bloque entero hacia arriba para hacer sitio — y el escritorio dimensiona unos 7 KB de arrays. Solo la rutina de paleta se comía cuatro segundos en eso. Predeclararlo todo antes del DIM bajó el arranque en frío de ~31 s a ~22 s.

04

EL LANZADOR SE CARGA, NO SE DIBUJA

Lo que quedaba era pintar doce casillas enmarcadas celda a celda, y esa pantalla no cambia nunca: se captura una vez y se blitea. Tres ficheros acompañantes llevan las rutinas ML, la imagen de códigos de pantalla y la de color; el arranque los hace BLOAD y ejecuta restaurar. El arranque en frío cayó a unos tres segundos.

05

UNA CAPTURA VIEJA SE RECHAZA, NO SE PINTA

Cada imagen capturada lleva un byte de versión y una suma de comprobación. El arranque verifica que las cargas han caído donde tocaba y que la versión coincide con la del programa; si falta un fichero, falla una carga o la versión no cuadra, se cae al dibujado BASIC de siempre. Un disco sin las imágenes arranca igual, solo que a la velocidad antigua.

06

REPINTAR SOLO LO QUE SE HA MOVIDO

La misma idea dentro de las herramientas, en BASIC puro: el navegador de ficheros y el editor rehacían las dieciséis filas visibles en cada pulsación del cursor. Ahora repintan las dos filas que han cambiado de verdad, y solo releen el disco cuando algo del disco ha cambiado.

// CÓMO SE COMPRUEBA UN PROGRAMA ANTERIOR A TUS HERRAMIENTAS
Tokenizado, desensamblado y arrancado antes de darlo por hecho
El BASIC v7.0 no tiene compilador que te pille, así que las comprobaciones son externas — y el código máquina se vuelve a deducir en lugar de darlo por bueno.
01

Ida y vuelta con petcat

El fuente se tokeniza con el petcat de VICE en BASIC v7.0 y vuelve byte a byte, que es lo que demuestra que cada token es legal y que no hay nada inventado.

02

Auditoría estática del BASIC

Sin saltos colgando, sin colisiones de variables de dos caracteres, sin escrituras a variables reservadas: justo lo que aparece tres menús adentro y meses después.

03

El código máquina, deducido otra vez

Las tres rutinas 6502 se vuelven a ensamblar con un ensamblador independiente en las comprobaciones de build y se comparan con los bytes de los DATA, para que una errata en un dígito hexadecimal no pueda salir.

04

Arrancado con ROMs reales

Los dos programas se ejecutan en VICE con ROMs auténticas de C128 y se confirma que llegan a su escritorio: el lanzador de 40 columnas y la portada del WorkSpace de 80.

ESPECIFICACIONES · Ficha técnica completa
MÁQUINA
Commodore 128 en modo C128 · 8502 · 128 KB
VÍDEO
VIC-IIe 40 columnas a 1 MHz · VDC 80 columnas a 2 MHz para la segunda edición
ALMACENAMIENTO
1541 · 1571 · 1581 · SD2IEC · cartucho flash con un D64 montado
ENTRADA
Teclado · joystick en el puerto 2 · sin dar por hecho un ratón
LENGUAJE
BASIC v7.0, solo tokens legales · tres rutinas 6502 ensambladas a mano
REQUIERE
Nada más. Ni REU, ni monitor de 80 columnas, ni cartucho, ni bitmaps
BUILD
petcat -w70 (VICE)
ARRANQUE EN FRÍO
~3 s en VICE, desde ~31 s
// LO QUE LA MÁQUINA VA A HACER DE VERDAD
La restricción es un C128 de serie, y no se movió nunca
Cada mejora de velocidad salió de preguntarse en qué se le iba el tiempo al 8502 —el bloque de arrays desplazándose bajo una variable nueva, doce casillas pintadas celda a celda— y no de pedir más hardware.
LA REGLADe serie

Un C128 tal como venía en la caja. Sin REU, sin pantalla de 80 columnas para la interfaz principal, sin cartucho, sin ratón.

LENGUAJEBASIC v7.0

Solo tokens legales, demostrado tokenizando con petcat. Las rutinas 6502 son bytes en DATA, así que no hace falta ensamblador para construirlo.

PLAN BSiempre

Cada acelerador se comprueba a sí mismo y se cae al camino lento antes que pintar la pantalla equivocada. Nada puede quedarse a medio dibujar.

CREADO PORDave Abellán

Tombatossals Softworks LLC.

CREADO POR · Dave Abellán
05 // ESTADO Y HOJA DE RUTA
Dónde está y a dónde va
4 EDICIONES
v1.0HOYEl escritorio de 40 columnas con sus doce herramientas, tres temas y cuatro fondos, más WorkSpace OS 128 v2.1 sobre el VDC con diecisiete apps. Los dos arrancan desde c128-apps.d64 detrás de un menú, los dos blitean su lanzador en vez de dibujarlo, y los dos se han ejecutado en VICE con ROMs auténticas de C128.
v2.1La edición de 80 columnasEl lado VDC se rehízo alrededor de un lanzador de dos paneles —lista de aplicaciones desplazable junto a un panel de información en vivo— y ganó un mapa de caracteres PETSCII y un conversor de bases, hasta las diecisiete apps.
LA AUDITORÍADos bugs de verdadTres entradas de menú mostraban basura porque los DATA de nombres se acababan y el READ se metía en las notas de la música SID; y el benchmark de CPU reutilizaba como cronómetro la variable que guarda el color de fondo del tema, así que al ejecutarlo dejaba un COLOR corrupto y reventaba el siguiente repintado. Los dos encontrados leyendo, los dos arreglados.
SIGUIENTEHierro realLas rutinas 6502 se han verificado estáticamente contra el mapa de memoria del C128 y se han ejecutado en VICE, pero todavía no sobre una máquina real en este entorno. Ese es el punto abierto, y es lo primero que habría que mirar si un repintado saliera corrupto.
// DISPONIBILIDAD
ESCRITORIO 40 COLUMNAS · PRINCIPALWORKSPACE OS 80 COLUMNAS v2.1SUITE 40-COL HEREDADA (ES)MENÚ DE ARRANQUE EN UN D64
06 // PREGUNTAS
Dudas razonables
6 PREGUNTAS

Todavía no. El repositorio es privado, así que hoy no hay imagen de disco pública ni fuente público. Cuando eso cambie, esta página llevará el enlace; hasta entonces, todo lo que aquí se cuenta se cuenta, no se ofrece.

// SIGUIENTE SISTEMAChumOS16-BIT · AMIGA · VS Workbench
CHANNEL #0x4C7A · ON AIRREC ● TC 02:47:18SIGNAL ▮▮▮▮▮ 100% · AES-256
TRANSMISSION · ENCRYPTED// SUBSCRIBE

Suscríbete al canal cifrado.

Devlogs, parches y filtraciones internas. Cero spam, cero analytics. Solo lo que importa, cuando importa.

9DEVLOGS PUBLICADOSDESDE 2025
2IDIOMASES · EN
0SPAM · TRACKINGDESDE SIEMPRE
// AGENT_INTAKEv3.07
UNIRSE A DISCORD
ABRIENDO TU CLIENTE DE CORREO · confirma el envío
CIFRADO100%
PRIVACIDAD100%
FRECUENCIA2-3/MES
// AES-256// 0 ANALYTICS// REPLY TO LEAVE// HOSTED IN VIRGINIA
// SIGNED · PRINCETON · ILLINOIS · 2025▮ ▮ ▮ ▮ ▮ ▮ ▮ ▮ ▮ ▮ ▮ ▮ ▮ ▮ ▮ ▮ ▮ ▮ ▮ ▮ ▮ ▮END_OF_TRANSMISSION_◆