mass:werk / Blog

(Posts 64 … 56.  Jump to newest. RSS feed: Subscribe.)

Minskytron Refurbished

Classic PDP-1 ‘display hacks’ emulation brought up to new standards.

PDP-1 emulation, running several 1960s graphics demos (Minskytron, Munching Squares, Snowflake)
The Minskytron, Munching Squares, Snowflake, and (my own) Snow Wave.

The emulation of the Minskytron and other so-called “display hacks” for the DEC PDP-1 is now en par with the Spacewar! emulation, in fact, it uses the same script and resources.

Check it out here,

The Minskytron and Other Early Graphics Demos @ PDP-1


Moreover, the emulation of David Mapes’ “Graphical Fun” has been overhauled, as well. (David Mapes invented at LLNL independently the same fast circle algorithm as Marvin Minsky and used it for animations similar to the Minskytron.)

Graphical Fun for the PDP-1 by David Mapes

Spacewar! is 60 Today!

The first digital video game just became 60.

Emulation of a PDP-1 running Spacewar!

Spacewar! 2B, the very version shown at the MIT’s Parent Weekend on Sat. 28 / Sun. 29 April, 1962, is labeled “2 Apr 62” — exactly 60 years ago today! Moreover, a first article on the game was published in the April 1962 issue of “Decuscope – Information for Digital Equipment Computer Users” (Vol. 1 No. 1, April 1962, pp 2 and 4).

Happy birthday!

To celebrate the event, the emulation was slightly overhauled, the appearance was updated and significant portions of the descriptive text were rewritten.

Check it out here,

Spacewar! on a virtual PDP-1

Nerdy Reading

Time for a summer romance.

Nerdy Reading
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.