Tuesday 22 March 2016

Prototyping the keyboard

We have just received a prototype keyboard that we have had WASD Keyboards build for us. This keyboard is based on a normal 87-key keyboard layout, and is intended to be a design that can be used for people building their own MEGA65 using the Nexys4 FPGA boards.

As the keyboard layout doesn't exactly match the C65's keyboard, we have had to make some adjustments, which I will explain in a moment. But first, the pictures:







First up, we think that WASD have done a great job, and made a very beautiful keyboard. We thought quite hard about the keyboard layout, to make it both useful and as true as possible to the original keyboard layout, and preserve the "8-bit" feel.

First, the top line from RUN/STOP to HELP match the C65 keyboard exactly. We then also put CLR/HOME and RUN/STOP on two of the three keys to the right, so that it would be easy to find those keys using muscle memory, to overcome the interference of the six key block below these three keys.  The pound key is also put on that row, because there wasn't room for it in the main block. This is also why the up-arrow and equals keys are moved to the key blocks on the right.

We then used the remaining four spare keys there for some common ASCII characters that were missing from the original keyboard, to make the MEGA65 keyboard more useful.  We also added a FAST/SLOW key for changing the CPU speed more conveniently.

The other most obvious changes are to have duplicated the C= / MEGA key, so that there is one on the right as well as left, and the inclusion of the FIRE and JOY LOCK keys.  Those two keys allow use of the cursor keys as a make-shift joystick.  The FIRE key simply mimics the fire button on a joystick, and by pressing the JOY LOCK key, the cursor keys toggle between acting as normal keys or as a joystick. SHIFT or one of the other modifier keys (yet to be decided) will be able to toggle which joystick port is to be controlled in this way.

We are still working on having a completely custom keyboard made, which would also have symbols printed on the front of the keys like on a real C65, instead of just on the top of the keys, and would exactly match the C65 keyboard in key layout.  More on that as we make progress.

18 comments:

  1. Paul, very nice can be to leave key printed on on top of key and at side of key print shortly function of ESC key combination. I have for My C128 keyboard same style - labels on top and at keys side I have printed ESC functions, but sadly for high costs never finished - price is 5 EUR per key. If you can provide me contact to manufacturer I'll contact them and make deal for printing rest of keys of my keyboard and publish photos on M65 forum or here.
    Think about - ESC keysequences makes work much easier.
    Miro

    ReplyDelete
    Replies
    1. Yes, this would be possible to do. However, front-printing is quite expensive as you mention. For the full-custom keyboard we will get front-printing done, but to be true to the C65 keyboard, we will be putting the symbols on the fronts of the keys. Of course, if you wish to print your own replacement caps, you are totally welcome to do that.

      Paul.

      Delete
    2. OK Paul, I can create map of ESC keysequences and send it by mail. I forgot to write about logo on keyboard - M created like rotated part of Commodore's C= ! Great, better it couldn't to be! By this logo we can't forget Commodore without any copyright interferee and also we can't forget Mega... I don't know if is M65 familiar abbreviation of Mega 65 - I'm using it for difference between C65 and M65.
      Later I do map and send by mail.
      Miro

      Delete
    3. So it will still use 1 button joysticks? That's a bit disappointing, I was hoping to have at least 6 buttons MD joypads support or something...
      at least, with such a nice keyboard (Cherry MX switches in those WASD keyboards) we'll be able to make games using multiple keys instead of those terrible "Competition PRO" :P

      Delete
    4. Miro: There isn't much point sending the escape codes to us, because as I mention, you will be free to make a keyboard with them on it, but we won't be doing this.

      Delete
    5. Yoann: Well, we haven't finalised yet which standards of joysticks will be supported -- it is just the keyboard joystick emulation that we are including already. Also, while we only have a dedicated key for one joystick button, this won't stop us from having the JOY LOCK key remap other keys to extra joystick buttons, for example.

      Delete
    6. That cool. I imagine a serial protocol on the joystick port would take care of any number of buttons/controls anyway (like the CD32 gamepad, Sega MD 6 buttons, or even NES/SNES protocols)
      Can't wait to see what you come up with :)

      Delete
    7. Our first priority is to get it working -- then we can worry about extensions like this. Of course, being open-source, it will be possible for others to implement such features and share them with the community.

      Delete
  2. Neat! If you don't mind, I have a couple of keyboard-related questions:

    1: Have you considered international layouts for the M65's built-in keyboard? (I for one would gladly pay a few bucks extra for a Scandinavian set of umlauts, provided that it will be physically possible to swap out keys from the default (US?) keyboard layout)

    2: Will the M65's own charset ROM have room for extra PETSCII characters? If it does, have you given the euro currency sign (€) any thought?

    The progress you guys are making is simply put really impressive, and a sheer delight to follow! Please keep it up!

    ReplyDelete
    Replies
    1. Of course no problem :)

      1. Yes, we are actively working on a German/US dual layout, matching what Commodore had originally planned for the C65 in Europe. What extra umlauts and things would you need beyond what a typical German keyboard layout provides?

      2. In native mode, the VIC-IV supports character sets with 8,192 characters, so this is possible. We also have an existing demo program that can render specially pre-processed TTF font files using full unicode point numbers, in which case the Euro symbol ceases to be a special case in any way. If you search back through the blog here for proportional text you should be able to find it.

      Thanks also for the kind words,

      Paul.

      Delete
  3. Thank you! :)

    To answer your question, Scandinavian keyboards (including C64/C128 computers) feature three umlauts ("å", "ä" and "ö" in Swedish, "å", "æ" and "ø" in Norwegian and Danish). I believe that Finnish keyboards are identical to Swedish, too. Considering how strong the Swedish and Scandinavian C64/128 scene is, here's hoping producing a national keyboard will make financial sense.

    Finding a photo showing what the real deal looks like proved a lot harder than I thought! I did, however, manage to dig up a blurry old photo of a Swedish VIC-20 keyboard:

    http://www.datajonny.se/vintage/vic20-s.jpg

    Oh, and about supporting TTF fonts - thanks for the reminder; come to think of it, I do recall they've been mentioned here before!

    ReplyDelete
  4. This is fascinating stuff. I may be quite late to the party but I've never even considered having a custom made keyboard and now all I can think of are the different uses I could put it to. Kind of designing my ideal one in my head as I type this- hate the ! being right up there for starters!

    Raymond @ CKS Global Solutions LTD

    ReplyDelete
  5. Hi, this keyboard looks really amazing! As a little personal project I want to create a C64 lookalike keyboard for a PC and to achieve that I also stumbled across WASD keyboards. So I already started a little bit playing around with the svg template provided by WASD. So I am wondering: Do you have an svg template for your keyboard and would you be willing to share it? I would really appreciate it!

    ReplyDelete
    Replies
    1. Hello,
      We have a template, but I am not sure if it is ready for sharing just yet. Unfortunately we are a bit flat out with everyone's day jobs being busier than usual at the moment, which is delaying some of these things more than we would like.

      Paul.

      Delete
    2. Hi and thanks for your reply! I came pretty far already on my own. I am just a bit worried about correct proportions of Letters and Symbols on the Keycaps but I guess a little trial and error should do the trick. I'll keep an eye on your project though and wish you all the best!

      Achim

      Delete
    3. Sounds good. If you have (or are willing to help with) production of separate SVG files for each key top and key-front, that would be super helpful, as we want to produce a program that can programmatically create the keycap moulds etc, with printing embossed.

      Paul.

      Delete
    4. That sounds like a lot of fun! I should have all the symbols ready as svg but I guess not in the exact form you need it. Let me know how exactly I can help you and I'll see what I can do. Is there a way to contact you directly so there is no need to spam this comment section?

      Achim

      Delete
    5. Yes, google for my name and flinders university and you will easily find my university email address.

      Paul.

      Delete