mass:werk / Blog

(Posts 60 … 52.  Jump to newest. RSS feed: Subscribe.)

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…

Spacewar 1 and the Beginnings of Video Game Aesthetics

Tales of the early days of the first digital video game.


Sometimes it’s only a short sentence, a few words dropped as an aside, which changes our understanding. A short glimpse, which provides deeper inside and understanding in what is a complex process. As it is here the case regarding how Spacewar!, the first digital video game became this remarkable program that gave birth to an entire industry. As usually, what was intended to be just a brief dump of an idea — at least, this is what a blog post is all about, isn’t it? — became lengthier than expected. Not for the least, as it’s still necessary to establish the subject, even as Spacewar! is rapidly progressing towards its 60th anniversary.

Continue reading…

Rare Retro-Computing Find

Atari Heavy Sixer running System V.

Illustation for April 1: Atari 2600 running System V in PDP/11 mode
Click for a larger image*).

Now this is some rare piece of equipment: An Atari 2600 “Heavy Sixer” running UNIX System V. The venerable VCS is attached to a box branded “pdp11/2600” and runs System V from a DEC cartridge. TTY is looped through the Spectravideo CompuMate keyboard add-on. Must investigate…

Illustation for April 1: Atari 2600 running System V, screen
A rare sight: System V on a color TV set.

However, the system is a bit finicky and runs about once a year.

*) Original image source, Atari 2600 & Spectravideo CompuMate: Avon Fox,
PS: Check the post date. ;-)