Expanding the catalog of questionable media for the sake of literature.
Meanwhile, the mass:werk Digital Library has been busy expanding its catalog of nerdy presentations of famous works of literature. (The library currently has a focus on prototypical exponents of materialist philosophy, like Jane Austen.)
Classic PDP-1 ‘display hacks’ emulation brought up to new standards.
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.
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.)
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.
A few new features for the 6502 online disassembler.
Another update to the “virtual 6502” disassembler, which has obtained a few new features regarding symbol tables:
Addresses immediately follwing a declared symbol will be translated to a labeled “+1” address (optionally). This may be useful with any code setting up pointers, etc, where only the low-address is declared as a symbol (as is often the case with zero-page system addresses.)
E.g.,
Symbols may be optionally declared specifically for write access only by a “w” suffix (case-insensitive). Think of the Atari VCS (AKA Atari 2600) and TIA read and write registers sharing the same address.
(The assembler ignores such a suffix in order to provide compatibility with such symbol tables.)
E.g.,
CXP0FB = $02 ;read register
WSYNC = $02 w ;write access only
Predefined symbol tables for the C64, the PET 2001, the Atari VCS, and the BBC Micro/Acorn may be loaded directly from the UI.
The disassembler now supports .DATA pseudo instruction for its symbol tables to declare an address or a range of addresses as data to be excluded from the disassembly (".BYTE" pseudo instructions will be added instead.)
E.g.,
.DATA $2040 ;exclude a single address
.DATA $2040 ... $240F ;exclude range $2040 … $240F (inclusive)
.DATA $2040, $240F ;as above
.DATA D1 ... D1+4 ;expressions are allowed
A comment with a binary representation of the respective byte (e.g., “;%01110101”) will be added to any verbose output format, in order to help identifying sprites and similar patterns.
This should be a useful for drilling down on some code: just keep adding “.DATA” statements to your symbol table as you identify a data section and keep on disassembling.
(Again, such a DATA pseudo-instruction is ignored by the assembler to assure compatibility.)
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.
Presenting a new old-school video game just a few years late, totally unironically.
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.
Another major update to the venerable “Virtual 6502” emulator – assembler – disassembler suite.
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) +++
A closer look at the “illegal” opcodes and undocumented instructions of the MOS 6502 MPU.
The instruction table of the MOS 6502 MPU, designed by Chuck Peddle & team 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.