# Yes, but what about the Commodore keyboard??

**URL:** <https://boards.straightdope.com/t/yes-but-what-about-the-commodore-keyboard/206070>\
**Category:** Cecil's Columns/Staff Reports\
**Created:** [October 7, 2003, 3:22pm UTC](https://boards.straightdope.com/t/yes-but-what-about-the-commodore-keyboard/206070 "2003-10-07T15:22:54Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![Eonwe](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/eonwe/32/240_2.png) [@Eonwe](https://boards.straightdope.com/u/Eonwe)\
**Post date:** [October 7, 2003, 3:22pm UTC](https://boards.straightdope.com/t/yes-but-what-about-the-commodore-keyboard/206070/1 "2003-10-07T15:22:54Z")

</div>

[This article](http://www.straightdope.com/mailbag/mscrolllock.html) 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?)

---

<div class="post-metadata">

**Author:** ![Frodo](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/frodo/32/302_2.png) [@Frodo](https://boards.straightdope.com/u/Frodo)\
**Post date:** [October 7, 2003, 4:23pm UTC](https://boards.straightdope.com/t/yes-but-what-about-the-commodore-keyboard/206070/2 "2003-10-07T16:23:50Z")

</div>

i had a Commodore 128 when i was a kid, those symbols are what would appear in the screen if you press shift while pressing the key with the symbol.

---

<div class="post-metadata">

**Author:** ![Chronos](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/chronos/32/134_2.png) [@Chronos](https://boards.straightdope.com/u/Chronos)\
**Post date:** [October 7, 2003, 7:16pm UTC](https://boards.straightdope.com/t/yes-but-what-about-the-commodore-keyboard/206070/3 "2003-10-07T19:16:00Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![MC\_Master\_of\_Ceremonies](https://avatars.discourse-cdn.com/v4/letter/m/bb73d2/32.png) [@MC\_Master\_of\_Ceremonies](https://boards.straightdope.com/u/MC_Master_of_Ceremonies)\
**Post date:** [October 7, 2003, 7:23pm UTC](https://boards.straightdope.com/t/yes-but-what-about-the-commodore-keyboard/206070/4 "2003-10-07T19:23:42Z")

</div>

Yes, when I was about 6 or 7 I had Sinclair Spectrum 48K and it had thosde characters and they were for making screen characters when using basic.

---

<div class="post-metadata">

**Author:** ![Bytegeist](https://avatars.discourse-cdn.com/v4/letter/b/9dc877/32.png) [@Bytegeist](https://boards.straightdope.com/u/Bytegeist)\
**Post date:** [October 7, 2003, 8:38pm UTC](https://boards.straightdope.com/t/yes-but-what-about-the-commodore-keyboard/206070/5 "2003-10-07T20:38:38Z")

</div>

> [@](#):
>
> **Chronos** : … 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.

**SYNTAX ERROR IN LINE 10** would be my bet.

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.)

---

<div class="post-metadata">

**Author:** ![Bytegeist](https://avatars.discourse-cdn.com/v4/letter/b/9dc877/32.png) [@Bytegeist](https://boards.straightdope.com/u/Bytegeist)\
**Post date:** [October 7, 2003, 9:02pm UTC](https://boards.straightdope.com/t/yes-but-what-about-the-commodore-keyboard/206070/6 "2003-10-07T21:02:45Z")

</div>

Sorry for posting again so soon.

First, please mentally swap the words _boring_ and _killjoy_ in the third paragraph of my previous post. That sentence will then make a lot more sense.

Second, I found a Sun Web page on Java identifier names, which I should have consulted earlier: [http://java.sun.com/docs/books/tutorial/java/nutsandbolts/variableNames.html](http://java.sun.com/docs/books/tutorial/java/nutsandbolts/variableNames.html)

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.

Now aren’t you glad you asked?

---

<div class="post-metadata">

**Author:** ![gilesjuk](https://avatars.discourse-cdn.com/v4/letter/g/e9a140/32.png) [@gilesjuk](https://boards.straightdope.com/u/gilesjuk)\
**Post date:** [October 8, 2003, 10:20am UTC](https://boards.straightdope.com/t/yes-but-what-about-the-commodore-keyboard/206070/7 "2003-10-08T10:20:39Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![uriber](https://avatars.discourse-cdn.com/v4/letter/u/848f3c/32.png) [@uriber](https://boards.straightdope.com/u/uriber)\
**Post date:** [October 9, 2003, 9:47pm UTC](https://boards.straightdope.com/t/yes-but-what-about-the-commodore-keyboard/206070/8 "2003-10-09T21:47:09Z")

</div>

> [@](#):
>
> \*Originally posted by Bytegeist \*
> 
> 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.

More accurate information [here](http://java.sun.com/docs/books/jls/second_edition/html/lexical.doc.html#40625) .

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.

---

<div class="post-metadata">

**Author:** ![panamajack](https://avatars.discourse-cdn.com/v4/letter/p/47e85d/32.png) [@panamajack](https://boards.straightdope.com/u/panamajack)\
**Post date:** [October 11, 2003, 1:15am UTC](https://boards.straightdope.com/t/yes-but-what-about-the-commodore-keyboard/206070/9 "2003-10-11T01:15:40Z")

</div>

The [Screen Display Codes](http://members.tripod.com/~rvbelzen/c128sg/app-d.htm) 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.)
