line number of the "interrupt handler", which had to end in a RETURN statement (part of standard, unexpanded BASIC) in order to transfer control back to the interrupted, "mainline" part of the program. Sound Playing a sequence of musical notes was hooked onto the standard BASIC "PRINT" command by the use of a special "control character", much like the cursor control, color changes and other control characters. E.g. played a rising scale. Commands like TEMPO and TUNE was used to set the playback tempo and the timbre of the note sequence. A "quirk" of this feature is that by typing the special control character (by pressing ) along with a quote mark, then deleting the quote mark, the machine would "play" whatever was typed while editing the program; hit the G key, and the machine played a "Pling!" with the pitch of a G note...! Hardware I/O Functions like RJOY, RPEN and RPOT would read the state of a connected joystick, light pen, or analog "paddle". In combination with the sprite-motion-related commands, it only took a single line of BASIC code to make a sprite move in the direction indicated by a connected joystick. Miscellaneous A KEY command was available, which would set up the four function keys on the 64's keyboard to "enter" an arbitrary string. By default, these keys were set up to type commands like RUN, LIST, SPRDEF, GRAPHICS and others, but the user could change this using the KEY command in either direct mode or under program control. Technical issues All the versions of BASIC on Commodore's 8-bit machines used a scheme of replacing BASIC keywords with single-byte code -- e.g. the word "" would be substituted by a single byte value, or token, rather than the five ASCII-codes for the five letters in the word. Super Expander added more commands than this system could accommodate, so a system of two-byte tokens for the new commands was implemented. Because of a quirk in the BASIC interpreter (the handling of the "THEN-part" of an IF/THEN construct didn't jump through a vector in RAM but instead took a direct JuMP to the standard, unexpanded BASIC command decoding routine), IF/THEN statements needed to have an extra colon (:) inserted right after the THEN keyword, if the following command was one of Super Expander's non-standard BASIC keywords. For instance, would yield a message — one had to write it like