This article by Una Persson was fascinating for me; though I’ve lost a great deal of my l33t $|<1lz on the computer (I think I functionally stopped learning anything new about computers with the advent of Win 95), I still like to immerse myself in computer talk every once in a while.
So, I’ve got a Commodore 128 sitting here, and aside from a few cool symbols on the keyboard (Pi and the British Pound), there are a whole bunch of others labeled on the front of the keys, boxes with various parts shaded in. Now, My Commodore knowledge is pretty minimal, aside from Load * ,8,1 or whatever the command was to run programs (obviously, though I have a system here, I haven’t tried to use it yet), so, what are all these crazy symbols for?
(I know this is quite a different subject than the scroll lock on IBM based systems, but it is a relevant tangent, don’t you think?)
I never had a Commodore, but on my Atari, the funky characters were there specifically for the purpose of making screen graphics. In retrospect, though, I’m kicking myself for never trying to put “lower-right filled box” or somesuch into a variable name. Would have been interesting to see how Atarisoft Basic reacted to that.
I can’t speak to Atari’s BASIC in particular, but probably all BASICs of those classic 8-bit computers had variable name restrictions that forbade any such whimsy. In Applesoft for example (a BASIC for the Apple II series), the first character had to be a letter. Subsequent characters had to be letters or digits.
For that matter, nearly all programming languages have similar rules. C adds the underscore as a legal character, as well as case-sensitivity, but is otherwise a killjoy boring like BASIC when it comes to names.
On the other hand, Java allows accented European letters in identifier names, at the very least — possibly even any Unicode character that isn’t otherwise forbidden or assigned another meaning. So a yen symbol (¥) might even work. (Some Java expert should confirm this though.)
It suggests that although the first character in a Java identifier must be a letter — now does that permit an accented letter? — subsequent characters can be any Unicode character whatsoever. That would even include Chinese characters, one supposes.
But not a space, I assume, since otherwise Java would have a severe lexing ambiguity.
Those symbols on the front of the keys were for creating menus, simple games etc… in BASIC.
Commodore key does a few things, press shift and C= key and you get lowercase. On a C128 I think you can hold the C= when powering it on to get into C64 mode (or type GO64 in 128 mode.
To sum it up quickly: Only Unicode letters and digits (plus ‘_’ and ‘$’) are allowed (so the Yen symbol, and of course whitespace-characters are out). But you can use any letters - including Greek, Hebrew, or Chinese ones.
The Screen Display Codes on the C128 were, as described, used to put some built-in graphics characters on the screen. If you look at the sets in the link, you’ll see that ‘Set 2’ was the one that displayed, as gilesjuk described, if you hit C= - Shift.
It wasn’t necessarily something only used in BASIC. It’s true that using bit-mapped graphics (where, to some extent, each pixel on the screen could be written to at any time) was extremely slow and usually done in assembly[sup]*[/sup]. One of the great features, though, was that you could re-map the character set to a place of your choosing in RAM. This meant that you could create programmable characters (8 x 8 bit-mapped ‘tiles’ essentially) and display them just as fast as if you were printing characters. You only got two colors per character location, though (bit-mapping had a total of 4 per character location, I think).
A lot of programs simply used a combination of programmable characters and sprites to do all the graphics; or they created their own fonts (not much you could do with the basic shapes, however). It was especially fun if your program crashed and you had to type the commands in a bizarre symbol language to get the standard set back.
More with respect to the original topic - for most ‘command line’ scrolling operations (e.g. LIST), you could pause (hit ‘RUN/STOP’) and slow (Ctrl key, I think). The C128 had a dedicated SCROLL STOP key.
[sup]*[/sup] Normal BASIC code was run interpreted, not compiled, though BASIC compilers did exist. Assembly language was usually the only alternative. I don’t think an assembler was provided; I could be wrong (The mythical programmer, of course, would simply POKE their program into memory.)