Urgent.News

What's breaking now, across thousands of outlets.

Tech

A graphical desktop for the ZX Spectrum

This article explores the development of a graphical desktop for the ZX Spectrum 48K, written in Z80 assembly language. The desktop includes overlapping windows with a z-order and focus, pull-down menus, a heap, an event queue, a storage layer with swappable backends, dialogues, controls, a notepad, a clock, a calendar, a two-pane file manager, and a settings panel that actually changes things.

Despite its complexity, the entire desktop fits within the 48K of RAM available on the machine from 1982. The desktop can drag a window inside a single 69,888 T-state frame, and it runs on the real device, not just an emulator.

The author, who wanted an Atari ST but couldn't afford one, spent a long time wondering how much of the Atari ST's desktop experience could be achieved on the ZX Spectrum. The project began as a way to explore the limitations and possibilities of the hardware. While it is not a port of GEM, it captures the essence of the desktop concept when pushed onto the ZX Spectrum's constraints.

The author emphasizes that the measurements and observations made during development are the most valuable aspects of the project. For those building similar systems on this hardware, the detailed timing information and techniques can save significant development time and effort. The tools and environment used for the project include pasmo 0.5.5, esxDOS, and Fuse for macOS. Specific details about the build process, file management, and window handling are provided to help others replicate or expand upon the work.

A key challenge in developing the desktop was handling the hardware's limitations, such as the ULA's cycle-stealing behavior and the need to keep window operations within the first 16KB of memory. The author details how these constraints were accounted for in the design, ensuring that the desktop remains responsive and functional despite the hardware's limitations.

The project demonstrates the ingenuity and creativity required to push modern software concepts onto limited hardware, providing insights and techniques that could be valuable to developers working with similar constraints today.

Written by urgent.news from Hacker News's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.

Read the original at github.com →

More in Tech

I Built a Free Scientific Calculator With a Real Natural Math Display (No Signup)

Why I built this Most free online calculators show math as flat text — 3/4 in one line, no real fraction rendering. That never felt right, especially compared to an actual physical calculator.

  • OnlineScientificCalc displays math equations naturally like a physical calculator.
  • No signups or downloads required, offering instant access.
  • Built with Astro.js and Tailwind CSS v4, featuring responsive design.

The New CSS Property I Wish Existed Years Ago

I used to fix this with a JavaScript resize listener. Now field-sizing: content do it in one line. Here’s another feature that we as web developers have been waiting for for years.

  • Field-sizing CSS property dynamically resizes text areas based on content
  • Available in Chrome 123, Safari 26.2, and Firefox 152
  • Eliminates need for JavaScript resize listeners and scroll bars

Learning AWS as a Java developer: where I'm starting and why

For the past few years I've been building Spring Boot microservices in an enterprise setting. I know how to ship services, but I've rarely made decisions about where and how they run in the cloud.

  • Java developer transitioning to AWS for solutions architecture
  • Learning AWS fundamentals: IAM, CLI, EC2, and free-tier usage
  • Structured learning plan: EC2, storage, scalability, databases, and serverless

More from Saturday 19 September →