mass:werk / Blog

(Posts 16 … 8.  Jump to newest. RSS feed: Subscribe.)

A Curious Bug in the Commodore BASIC Tokenizer Routine

Investigations into a lesser known bug in Commodore BASIC abbreviations.

There is a well known, special feature of the BASIC implementation of Commodore 8-bit machines, namely abbreviated BASIC commands. While this is probably more a bug than a feature, this bug has a curious bug of its own. Reason enough to start an investigation.

VT100 Series CRT Typography
A slightly embarrassed Commodore PET.

Why are there these abbreviations, how do they work, and, what could possibly go wrong?

Continue reading…

Raster CRT Typography (According to DEC)

A closer look at the glyphs drawn by the DEC terminals VT100 and VT220.

Recently, I engaged in a bit of analog media emulation, namely for the purpose of the reenactment of raster CRT graphics as seen on “glass terminals” like the iconic VT-series by the Digital Equipment Corporation (DEC). An endeavor, which raises a few questions, like, is there anything special to the media, what did the fonts really look like, and can we reconstruct them from specifications?

VT100 Series CRT Typography
(Not a DEC manual.)

Since ROMs are available (and modern TrueType fonts, as well), we may start there, since they are the closest, we may get, to the real thing, aren’t they? What could possibly go wrong?

Continue reading…

Binary Grain — The Hare in the Mandelbrot Set

Images from the outer limits of numeric precision.

Take any numeric renderer which allows you to zoom in repeatedly. For instance a Mandelbrot set renderer, because, Mandelbrot sets are always fun. For instance this one (by your’s truely). As you keep zooming in and zooming in, after a while, eventually, the rendered image will suddenly show pixelation. And as you are zooming in again, the pixels will increas in size. However, this is not a fault of the visualization layer, it’s just that you hit the mathemitcal barrier of numeric precision. The grain in binary computers…

Binary grain to du numeric precision

Continue reading…

Forgotten JavaScript: Object.handleEvent()

Tales of event-handling in JavaScript and some historic oddities of Netscape Navigator 4.

An interesting aspect of web technology is that solutions to specific problems tend to be invented more than once. For some reason or the other, a given solution doesn’t catch on and a new generation of developers will eventually address the wheel by the help of a new proposal. In this case it’s about object isolation and event handling.

code example for object.handleEvent

And while we’re at it, we may have a closer look at some of the (other) oddities of the Netscape Navigator 4 browser, as well…

Continue reading…

Legacy Graphics Range for Char8.js

The Terminals Working Group proposed a new Unicode range earlier this month (Jan. 4, 2019) for the purpose of retrocomputing and emulation. As of version 1.1, the newly proposed glyphs are already included in the Char8.js library for generating 8-bit characters from Unicode.

Here’s a sample, rendering the new glyphs in double height using a 16 × 8 character matrix:

The proposed legacy graphics range, rendered at 8 x 16 using Char8.js

The proposed range incorporates glyphs from various legacy systems, including

Related Links:

Anatomy of a Wordpress Backdoor

Reverse engineering the command and control structure of a Wordpress attack.

Software archeology usually relates to dated programs, like the bit we did on a 1960s graphics demo for the PDP-1. However, the same skill set also applies to reverse engineering more recent bits and bytes. In this case it’s about a Wordpress attack and its command & control structure. Recently, I discovered a new variation of the command & control structure…

Anatomy of a Wordpress hack

Continue reading…

Design & Engineering

Engineering design according to the Report of the Feilden Committee on Engineering Design, delivered to the government of Harold Macmillan in 1963:

G.B.R. Feilden, Engineering Design, Report of the Royal Commission, 1963: Engineering design is the use of scientific principles, technical information and imagination in the definition of a structure, machine or system to perform specified functions with the maximum economy and efficiency.

Now redo it in cross-stitch. ;-)

Snowflake Archeology (DEC PDP-1)

Software archeology of an early computer animation (1960s) for the DEC PDP-1

Snowflake (compare the post below) is a small graphics program written for DEC PDP-1 somewhen in the early to mid 1960s. In essence, Snowflake is a kaleidoscopic program, mapping a list of moving points multiple times onto the screen in a starlike manner. It may be the first of these programs, at least, it’s an early specimen of the species.

Snowflake for the PDP-1 (montage)

In order to learn how it does its trick, we engage in a bit of serious software archeology. All the fun is provided: PDP-1 assembler code, intricacies of display instructions, disassemblies, we even provide a little hack of our own to demonstrate the algorithm (which happens to be much like an once original form and isn’t without a beauty of its own). However, strap yourself for a lengthy read…

Continue reading…