mass:werk / Blog

(Posts 23 … 15.  Jump to newest. RSS feed: Subscribe.)

BASIC (Re)Numbering — with Commodore

How to thoroughly renumber Commodore BASIC programs (PET 2001, VIC-20, C64)

Renumbering Commodore BASIC
The curious wonders of Commodore BASIC renumbering.

Renumbering a is popular beginner’s sport for those who dare to venture into the mythical realms of intricacy, which the BASIC interpreter and its storage formats provide. Since it is also a useful utility, there are numerous programs for this, especially it’s a favorite example in the intructory sections of machine language guides. However, as always, there’s an easy way and a thorough one. And we’ll see soon, why this may be.

Continue reading…

Announcing meSpeak.js 2.0

Text to Speech in JS, now even better.

Announcing meSpeak 2.0

I am happy to announce a long planned for update to meSpeak.js, an open source TTS for the Web in JavaScript. This version brings some major update (and some minor discontinuities in API as well.) In a nutshell, meSpeak.js is the open source eSpeak program crosscompiled to JS using Emscripten (a minimal POSIX runtime to run LLVM compiler output in JS) running in the browser with some additional API glued on top. MeSpeak.js is based on speak.js, which has been an early demo application for Emscripten, but differs somewhat in architecture and features (like access to the entirety of eSpeak options, facilities for export and/or buffering of audio data, a built-in audio playback API, modular voice and language descriptions, etc) and also in compatibility.

Continue reading…

LGP-30 — A Drum Computer of Significance

Affordable computing by rotating bits at 3700 rpm.

In July 1956, when IBM was still considering its answer (which was to become the IBM 1401) to the French challenge that was the Bull Gamma 3 (1952), then posing a serious threat to IBM’s monopolic line-up of punched card appliances, Librazette, Librascope’s employees’ and PR gazette, proudly announced that the company’s new LGP-30 computer had been promoted to production.

The computer had been developed by Stan Frankel as the MINAC at CalTech in 1954 and Librascope had bought Frankel’s design (apparently in the same year), releasing it as the LGP-30 in 1956. (…)

Royal Precicision LGP-30
LGP-30 sales brochure, Royal McBee Corporation, 1956.

The computer generally known as the Royal McBee LGP-30 was a desk-sized appliance and weighed in at about 800 pounds (360 kg). It came with a Flexowriter-style console typewriter and consisted internally of just 113 vaccum tubes, 1,450 solid state diodes, and a magnetic drum for memory (4K of 31-bits words) and 3 registers. It plugged into an ordinary wall socket, from which the combined circuitry drew up to 1500 Watts. All this could be yours for just US$ 47,000 ($433,000 in 2018), which was actually the first viable option for small-to-medium scale computing.

Continue reading…

Recommendation: Astronaut.io

“Today, you are an Astronaut. You are floating in inner space 100 miles above the surface of Earth. You peer through your window and this is what you see. You are people watching. These are fleeting moments. These videos come from YouTube. They were uploaded in the last week and have titles like DSC 1234 and IMG 4321. They have almost zero previous views. They are unnamed, unedited, and unseen (by anyone but you).”

Astronaut.io, 2019
Astronaut.io (screenshot).

This is a great little project! — Don’t fail to experience this inner journey through these ghostly voids of abandoned footage! Ephemeral at its best! Chapeau!

Website: astronaut.io

Via HN, news.ycombinator.com/item?id=20432772.

The Peculiar Case of a Self-Referential Computer Instruction (DEC PDP-7, 1964)

Or, how to lift Kurt Gödel’s hat by −0.

Lifting Gödle's Hat by -0.
Photograph of Kurt Gödel by Richard Arens, 1954,
“Oslo” PDP-7 by Tore Sinding Bekkedal, 2005 (Wikimedia Commons).

A recent discussion on the Retro Computing Forum turned my interest towards the DEC PDP-7 in general and it’s peculiar lack of a dedicated instruction for two’s complement subtraction (or, that is, subtraction at all) in the absence of a two’s complement negate instruction …

Continue reading…

Instant PET: Commodore BASIC as Data-URL

mass:werk proudly presents: Running BASIC on a virtual PET 2001 from URL-data.

Network URLs for a virtual PET

So you want to show your friends a little BASIC program or want to solve some problem with (retro) style? Despair no more, since help is near…

More specifically, just a click away, at www.masswerk.at/pet, where you find my enhanced version of Thomas Skibo’s in-browser PET 2001 emulation. What’s new is an additional mode, where the emulator loads (and runs) a program from data encoded in URL-parameters — as provided either in the query-string or in the URL-fragment (hash). And you may use this for immediate execution in direct mode, as well!

Continue reading…

Digital Video Game Firsts — Michigan Pool (1954)

On the origin of digital video games and the complexity of classification.

When it comes to the first known digital video game (i.e. an interactive game implemented on a digital computer communicating its state by some kind of graphical display), it’s always also about a question of definition. Personally, I’d opt for a requirement of a digital computer running a simulation in real-time and providing means of interactive manipulation of said simulation by some kind of user input (without any interruption to the flow of the program). By this, we define a distinctive problem class for this, namely interactive, visual real-time computing. So a turn based game, like OXO, wouldn’t be a member of this class, while, say, Spacewar! would happily fit the definition.

Pool on MIDSAC, 1964
A game of Pool on MIDSAC, 1954.

So I’d like to divert your esteemed attention to a certain, lesser known edge case, “Pool”, implemented by William George Brown and Ted Lewis in 1954 on the one-of-a-kind MIDSAC computer.

Continue reading…

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…