Forum Rules and Etiquette

Our mission ...

This forum is part of our mission to promote the preservation of vintage computers through education and outreach. (In real life we also run events and have a museum.) We encourage you to join us, participate, share your knowledge, and enjoy.

This forum has been around in this format for over 15 years. These rules and guidelines help us maintain a healthy and active community, and we moderate the forum to keep things on track. Please familiarize yourself with these rules and guidelines.

Rule 1: Remain civil and respectful

There are several hundred people who actively participate here. People come from all different backgrounds and will have different ways of seeing things. You will not agree with everything you read here. Back-and-forth discussions are fine but do not cross the line into rude or disrespectful behavior.

Conduct yourself as you would at any other place where people come together in person to discuss their hobby. If you wouldn't say something to somebody in person, then you probably should not be writing it here.

This should be obvious but, just in case: profanity, threats, slurs against any group (sexual, racial, gender, etc.) will not be tolerated.

Rule 2: Stay close to the original topic being discussed
  • If you are starting a new thread choose a reasonable sub-forum to start your thread. (If you choose incorrectly don't worry, we can fix that.)
  • If you are responding to a thread, stay on topic - the original poster was trying to achieve something. You can always start a new thread instead of potentially "hijacking" an existing thread.

Rule 3: Contribute something meaningful

To put things in engineering terms, we value a high signal to noise ratio. Coming here should not be a waste of time.
  • This is not a chat room. If you are taking less than 30 seconds to make a post then you are probably doing something wrong. A post should be on topic, clear, and contribute something meaningful to the discussion. If people read your posts and feel that their time as been wasted, they will stop reading your posts. Worse yet, they will stop visiting and we'll lose their experience and contributions.
  • Do not bump threads.
  • Do not "necro-post" unless you are following up to a specific person on a specific thread. And even then, that person may have moved on. Just start a new thread for your related topic.
  • Use the Private Message system for posts that are targeted at a specific person.

Rule 4: "PM Sent!" messages (or, how to use the Private Message system)

This forum has a private message feature that we want people to use for messages that are not of general interest to other members.

In short, if you are going to reply to a thread and that reply is targeted to a specific individual and not of interest to anybody else (either now or in the future) then send a private message instead.

Here are some obvious examples of when you should not reply to a thread and use the PM system instead:
  • "PM Sent!": Do not tell the rest of us that you sent a PM ... the forum software will tell the other person that they have a PM waiting.
  • "How much is shipping to ....": This is a very specific and directed question that is not of interest to anybody else.

Why do we have this policy? Sending a "PM Sent!" type message basically wastes everybody else's time by making them having to scroll past a post in a thread that looks to be updated, when the update is not meaningful. And the person you are sending the PM to will be notified by the forum software that they have a message waiting for them. Look up at the top near the right edge where it says 'Notifications' ... if you have a PM waiting, it will tell you there.

Rule 5: Copyright and other legal issues

We are here to discuss vintage computing, so discussing software, books, and other intellectual property that is on-topic is fine. We don't want people using these forums to discuss or enable copyright violations or other things that are against the law; whether you agree with the law or not is irrelevant. Do not use our resources for something that is legally or morally questionable.

Our discussions here generally fall under "fair use." Telling people how to pirate a software title is an example of something that is not allowable here.

Reporting problematic posts

If you see spam, a wildly off-topic post, or something abusive or illegal please report the thread by clicking on the "Report Post" icon. (It looks like an exclamation point in a triangle and it is available under every post.) This send a notification to all of the moderators, so somebody will see it and deal with it.

If you are unsure you may consider sending a private message to a moderator instead.

New user moderation

New users are directly moderated so that we can weed spammers out early. This means that for your first 10 posts you will have some delay before they are seen. We understand this can be disruptive to the flow of conversation and we try to keep up with our new user moderation duties to avoid undue inconvenience. Please do not make duplicate posts, extra posts to bump your post count, or ask the moderators to expedite this process; 10 moderated posts will go by quickly.

New users also have a smaller personal message inbox limit and are rate limited when sending PMs to other users.

Other suggestions
  • Use Google, books, or other definitive sources. There is a lot of information out there.
  • Don't make people guess at what you are trying to say; we are not mind readers. Be clear and concise.
  • Spelling and grammar are not rated, but they do make a post easier to read.
See more
See less

SOL-20 universal personality module

  • Filter
  • Time
  • Show
Clear All
new posts

    SOL-20 universal personality module

    It took a while for me to get back to this, but I have built up and verified the new module.

    Here's a photo of the board, along with my original peronality module.

    Photo Sep 22, 11 20 15 AM.jpg Photo Sep 22, 11 20 50 AM.jpg Photo Sep 22, 12 14 08 PM.jpg

    I've loaded a 27C64 with the ROMs from the SOLACE emulator: SOLOS, CONSOL, SOLOS (v2) and DPMON.

    All seem to boot, but keyboard issues keep me from testing them.

    I'm working on a new rev which will address some issues. I could use input from you guys.

    1) The resistor spacing is too small for regular 1/4 W resistors. I had some 1/8W 10K resistors, which will work just fine--these don't pass much current. I've also seen mini 1/4w resistors which are available from Digikey and Mouser. The new rev (on GitHub) increases the spacing. However, I'm tempted to just replace these with a ressitor network.

    2) I am using a 6-wide DIP switch. In my case, I used a Dremel to cut off 2 switches from an 8-wide DIP switch. To avoid requiring a 6-wide DIP switch, I'm changing the switch to a 0.1" 2x6 (or so) header, with jumpers to configure the PCB. This will be easier and cheaper to source, can be cut from a long header, and is easier to understand the configuration, since it may be hard to tell if a switch position is open or closed.

    3) I included a switch to enable or disable the C4xx ROM block, in case someone with a 1K ROM decided to put something else at C400, but I doubt this is useful, and requires a switch to be closed, or a jumper to be placed. I'm planning on removing it from the next revision.

    4) This board should be compatible with 28C256, 28C128, 28C64, 27C128, and 27C64 (which I used because that's what I had). The 27C256 won't work because of different mapping of a couple of pins compared with 28C256. If I move to a 0.1" header for configuration, it will be easy to add a 2-position jumper to select between 27C256 and everything else.

    5) For the Cxxx->Fxxx remapping, a couple of jumpers must be placed between the main board and the module. The pins on the "A" side are all easy to access without removing the main board (which is a project), but they are all used. This version uses pins B2 and B3, which are apparently used for programming at the factory. But, they are hard to access without extensive disassembly. I'm considering just bypassing the connector, since the personality module is basically only providing a switch. Instead, I'm thinking of bringing a pair of wires from the motherboard to a 2-pin 0.1" socket, which can be routed along the side of the case to a switch, or plugged into two shoted pins on the 0.1" header on the personality module. For no remap, the wire could be left unplugged, or for neatness, plugged into a pair of open pins on the 0.1" header.

    Or, just require disassembly and accessing the underside of the main board to do the remapping mod.

    Any thoughts?

    BTW, if anyone wants one of the blank PCBs, let me know.

    The design (in progress) is up on GitHub:

    OSI Forum and Archive at

    Unified Retro Keyboard Project on Github

    Nice work, Dave! Glad to see an open source option...yours looks better, too I need to get my SOL-20 running, but mine still needs keyboard foam, not a task I'm looking forward to!

    1) I tend to use resistor networks whenever I can.

    2) Breakaway headers are a win, in my book. I typically don't even stock dual-row versions, I just use a pair of single-row pins. I'd say that's better than a non-8-position DIP switch.

    4) Might as well add the jumper for 27256 mode, I assume most people hacking on hardware also have a bucket of these salvaged from old gear.

    5) I think either way is a good solution. I don't personally mind flywires.
    Check out The Glitch Works | My Retro Projects | Vintage Computer Services | Glitch Works Tindie Store -- Vintage Computer Kits and More


      Thanks! I have some weird keyboard behavior, but all the character keys seem to work. I have strange caps/shift behavior and the RETURN key doesn't work. I'm hoping it's all just foam pads and not some weird keyboard logic issue.
      OSI Forum and Archive at

      Unified Retro Keyboard Project on Github


        I would definitely go with the headers too, they are cheaper than DIP switches and in the long run more reliable (except for the very expensive fully sealed DIP types) With the headers when the small link sockets are pulled on and off the scraping effect cleans the gold surface, so they invariably make a good contact as they age. With DIP's they can fail to connect as they age if they are just touching and non sliding contacts. I replaced all the DIP switches in my SOL and on my RAM cards with new Omron ones, in sockets.

        The foam pads are available from Texelec, I believe they have now got them so they will reliably trigger a Sol keyboard. There are two types of keyboard, in one case one side of the foam disc is held in place by small arms and they click into position, makes life easy. In the earlier versions they are held in place with a contact adhesive. I did not want to put any liquid adhesive near the key mechanism so to do it I used super thin double sided tape ( only a small fraction of a mm thick) and punched out discs of that to retain the foam discs and have had no trouble with the keyboard since, though my keyboard had one intermittent IC that took me a considerable time to locate and occasionally the keyboard would be disabled.
        I would not recommend scouring the pcb surface where the pads touch, an electrical connection is not required and the oxide on the surface is too thin to have any effect, though you could clean it with IPA. If you are stuck for getting working foam discs, the keyboard will also reliably trigger with conductive rubber discs, the type of thing sold for calculator repairs. It changes the operating mode of the keyboard but it still works. I got my replacement foam discs from a Sun 4 keyboard, but at that point the Texelec ones were not perfected.


          OK, I've pushed rev 2 to github. The changes are:

          1) Replaced the DIP switch with an 8 x 2 header
          2) Removed the C4xx disable option. C4xx is now always decoded.
          3) Added two jumper positions, for 27C256, and everything else other than 27C256
          4) Added the option to either make the SOL-PC mainboard mod, or bring the two wires out on a 2-pin socket, and plug them into the rightmost two pins of the header.
          5) Replaced the discrete resistors with a couple of networks.


          Some notes:

          1) For the SEL0-3 lines, a jumper pulls the line LOW, so the 000 block will require 3 jumpers. If you want a jumper to indicate a logical 1, then invert the ordering of the images in the (E)EPROM. I.E., place the first image at 111, second at 110, third at 101, etc. Since that can all be handled in a script, that's not a bad way to go.

          2) For a 'C128, leave Sel3 open. For a 'C64, leave Sel 2 and Sel 3 open.

          3) For a 27C256, place a jumper at the 27C256 position. For 28C256, 27/28C128, 27/28C64, place a jumper at "~27C256"

          4) To remap to Fxxx, make sure the selected ROM image is compiled for Fxxx, solder the wires to the motherboard as described in the DPMON manual, and either connect them to B2 and B3 on the connector, or to the last two pins on the personality module, and place a jumper in the "Map Fxxx" position. To revert to Cxxx, you can leave the mod wires plugged in. Make sure the selected image is compiled for Cxxx and remove the "Map Fxxx" jumper.

          The Resistor network values are not critical at all. The two also don't need to be the same.

          For RN1, you can use a 6-, 7-, or 8 resistor network in the 1K-20K range, and be OK, as long as you put pin 1 in the right spot.

          For RN2, any 6, 7, or 8-resistor netork is fine, and you can use any value at all, or even just solder a wire across all the pins (no current should flow through the network).

          I will probably place an order sometime and check this out, and test the remapping, but I'm not in a rush. If anyone tries it first, let me know (and if you want to send me a spare board, I'd be grateful.)

          Meanwhile, I have a bunch of extra Rev 1 boards that will work just fine, so if anyone wants one, PM me and I'll drop one in the mail.

          Last edited by dfnr2; September 25, 2019, 08:18 AM.
          OSI Forum and Archive at

          Unified Retro Keyboard Project on Github


            Looking good!
            Check out The Glitch Works | My Retro Projects | Vintage Computer Services | Glitch Works Tindie Store -- Vintage Computer Kits and More