mass:werk / Blog

(Posts 29 … 21.  Jump to newest. RSS feed: Subscribe.)

Lehman Bros., Liquidity, Austerity, COVID-19, and the Inevitable Rise of John Maynard Keynes

Veering off of our usual topics for a bit of political economy.

Hum...
Thresholds — Hum…

Since everything is a bit out of the ordinary recently, here’s a somewhat different post, diverging from our usual path. Yes it’s about the current “Corona” situation, but also about a somewhat broader perspective. Since my educational background is in such things like philosophy, sociology and even a couple of semesters of political science, I can’t help including this perspective. On the other hand, I’m clearly not a medic nor do I have any relations to that honorable profession. So I’m entirely without expertice in this field and relying on what is to be learned from public appearances of epidemiologist who speak on the matter. (In other words, anything regarding the current situation and its epidemiological perspectives is just hearsay and lacking any further foundations. Any inferences and/or conclusions drawn from this kind of awareness are not any better than the foundations on which they are built.)

Trigger Warning
I’m sorry to say, this will not be another pep talk on the subject. If you feel apprehensive about this or do not feel like in the right mood for this, better skip this post.

Continue reading…

PET 2001 Emulator — V. 1.0

Proudly announcing version 1.0 of the PET 2001 online emulator.

Commodore PET 2001 Emulator V.1.0 Announcement
Yet another PET 2001 related title illustration.

Recently, I’ve been posting on Commodore BASIC and more specifically about the PET 2001 quite a bit. While not the sole reason, this was partly because I was adding a few features to the PET 2001 online emulator behind the scenes. I even endeavored into a major reorganization of some of the source code in order to facilitate this and future work. And, last but not least, there’s now even a suitable help file / documentation. — Reason enough to promote the emulator from its previous beta state to version 1.0!

Continue reading…

PETSCII Revealed

A closer look at the logic behind Commodore ASCII, AKA “PETSCII”, and the PET 2001.

PETSCII and the Commodore PET 2001
Investigations into a somewhat mysterious character code.

The flavor of ASCII used by the Commodore 8 bit computers, commonly known as PETSCII, is asking for a bit of an explanation. PETSCII is a peculiar beast, close to ASCII, but not quite, somewhat compatible, but not really, there are duplicate ranges of characters all over the place, and the special characters are lacking any recognizable order… — But look at all these these funny graphics characters!

In order to make sense of this and how the character set is organized, it may be helpful to have a closer look at it with a particular focus on the PET 2001. At least, this is the very machine, this character set originated on and for which it was designed for, with no idea yet that this may become the ancestor of a succesful line of home computers. Here, we may discover logic, in what must remain a puzzling enigma on the more popular and better known machines that followed, like the C64.

Continue reading…

Calm Panic in the Face of Influenza

Learning from history: How to keep calm while panicking and carry on with face masks

Wear a mask or go to jail — California, 1918.
(Raymond Coyne, 1918-11-03)

Influenza and influencers, and a friendly customer information from 1918. Apparently, it’s not the first time, we’re facing an epidemic. Some prefer doing so while wearing a face mask, others may prefer desinfectants. Arguably, masks make the better photographs.

Photo by Raymond Coyne, 1918-11-03 (Mill Valley Public Library, Lucretia Little History Room).
Source: California Revealed.

Writing a PET 2001 Ten-Line Canyon Run Video Game

String exploits and a reasonably paced video game in just 10 lines of Commodore BASIC.

Writing a 10-line canõn run game on the PET 2001
Yee-haw! — A canyon to ride by just 10 lines of BASIC!

In continuation of and as a finale to our mini series on the internal representations of Commodore BASIC, we’ll now put some of our findings to use, especially some possible exploits of string variables.

What we’re going to do, is a classic canyon run game, where a single player rides/flies/drives/navigates a procedurally generated canyon down from the top, trying to progress as far and deeply into the winding depths as possible while avoiding the walls of the canyon. And we’re going to implement it in just 10 lines of BASIC, which puts some serious constraints on our solution. As do some of the intricacies of the PET 2001. Especially, we’ll have to avoid any direct access to the video memory (as in PEEKs and POKEs), meaning, we’ll do it all by print statements. So we’ll have to consult our bag of tricks — and come up with some exploits of the string mechanism.

Spoiler alert: It will be about fast partial strings and fast FIFO queues, while avoiding garbage collection.

Continue reading…

BASIC Variables & Strings — with Commodore

Investigations into the memory utilization of Commodore BASIC (PET 2001, VIC-20, C64)

Variables and Strings in Commodore BASIC
The astounding intricacies of Commodore BASIC variables.

In continuation of our last episode, we return to our investigations into Commodore BASIC memory representations. This time, it’s about variables, arrays, and, especially, strings.

Continue reading…

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…