mass:werk / Blog

“Now Go Bang!” is named after a source comment in Spacewar!, the first digital video game.
It marks the very instance, when a spaceship which has been dragged into the gravitational star starts to explode. What follows, is impressionist pixel-dust floating along the ship’s former trajectory in a sparkling bloom of phosphor activation.

"now go bang" as found in the source code of Spacewar!

RSS feed: Subscribe.

Posts so far: 61, view as a comprehensive list.

A few tags:computerhistory, infographics, software, pet2001, basic, pdp-1, archeology, retrochallenge, mixed-bag, long-read.

If you like what I’m doing, you can buy me a coffee: Buy me a coffee

Nerdy Reading

Time for a summer romance.

Illustation: MOS 6502 MPU
Alphabet illustration by Giovanni Pintori for Olivetti, 1966.

Well, another blog post, sort of. Also, a lush source of entertainment. Maybe an experiment, as well. You’d better take a look…

Continue reading…

Virtual 6502 — Another Update

A few new features for the 6502 online disassembler.

Illustation: MOS 6502 MPU

Another update to the “virtual 6502” disassembler, which has obtained a few new features regarding symbol tables:

Moreover, all the “virtual 6502” apps now support input and output in “&…” hex notion to comfort those who were tragically mislead by the BBC (while MOS made it quite clear that is “$…”). ;-)
(Seriously, I’ve really the highest respect for the BBC Micro, which was an enormous achievement.)

By this, the disassembler looks much like feature-complete.

New Old Game: Gravi-o-roids!

Presenting a new old-school video game just a few years late, totally unironically.

Illustation: an arcade cabinet

Back in 2017, I was asking myself — like about every other person on Earth has done so before ;-) —, what would a Spacewar!-like game with multiple gravitational attractors look like? Would it even be playable? Well, time for an experiment.

Continue reading…

Virtual 6502 — Update Round 2

Another major update to the venerable “Virtual 6502” emulator – assembler – disassembler suite.

Illustation: MOS 6502 MPU

I may have been a bit unresponsive over the last few days, but there is a reason for this. Namely, I invested most of my available time into another round of updates to the “Virtual 6502” suite, consisting of an emulator of the MOS 6502 MPU, an old-school assembler, and a respective disassembler. And this has been a major round of updates. Suffice to say, I think these venerable programs, which had been a bit basic and even dated by now, do now for a competent little suite of programs.

+++ Updated for an even improved version of the disassembler. (June 25, 2021) +++

Continue reading…

6502 “Illegal” Opcodes Demystified

A closer look at the “illegal” opcodes and undocumented instructions of the MOS 6502 MPU.

Illustation: MOS 6502 MPU

The instruction table of the MOS 6502 MPU, designed by MOS Technology and introduced in 1975 (the CMOS version, 65C02, was developed by Western Design Center) has some obvious gaps, with just 56 intructions documented in various address modes. This leaves 105 undocumented slots — and the 6502 community has been eager to fill these gaps, ever since.

Still, there’s some mystery left and there are questions unanswered, like, were at least some of them intentional (especially, since some of them are handy for block transfer, something the Z80 has dedicated instructions for) or are they all by accident, how do they behave, and why so? Here, we’ll try to come up with some answers to these questions.

Continue reading…

More 6502 Updates

Further improvements on the Virtual 6502 suite.

Illustation: MOS 6502 MPU

Never at a loss to improve and always afraid to miss out on features or correctness ;-), I added another bunch of improvements to the Virtual 6502 suite.

This time, it has been about the emulator, which received a watchdog to monitor breakpoints and other conditions (like register contents or stack underflow), and support for interrupts. Also, stack operations in conjunction to the implementation of the break flag have been improved. (Moreover, all the applications now enjoy — hopefully as much as the user — fancy UI buttons and custom dialogs. Besides looking period appropriately pretty — this is sort of a sympathetic restoration —, these also provide some extended functionallity that is essential to some of these improvements, like the dialog for editing the watchdog’s conditions.)

In addition to this, the 6502 Instruction Set Sheet now features all kind of information on “illegal” opcodes: there’s now a checkbox below the instruction table to include them in the view, a new section with details on those undocumented instructions, and two three more decoding tables showing, where these fit in, and providing deeper insight into the internal operations.

I guess, next steps will be to implement support for these illegal opcodes for the emulator, assembler, and disassembler as an option.

A Quick CSS Tip Regarding Legacy Image Tables

Dealing with legacy image tables and modern web standards.

Illustation: The problem with legacy img tables and modern web standards

If you’re dealing with the front-end side of the Web, every so often you may stumble over this issue with legacy image tables, like image slices: transitioning to modern web standards causes some nasty vertical extra white space to appear. — However, there is a simple solution to this problem.

Continue reading…

An Update to the Virtual 6502 Suite

Improving one of the oldest 6502 tool sets on the web.


The Virtual 6502 suite maybe the oldest 6502 tool set on the web still in existence. It may be also one of the earlier ones, at least, when I was doing it, I hadn’t found another one. Reason enough, to give these venerable web pages a bit of an update treatment.

Continue reading…