My Funkey Keyboard

9 posts / 0 new
Last post
Offline
Last seen: 2 years 4 months ago
Joined: Jan 1 2015 - 18:57
Posts: 47
My Funkey Keyboard
AttachmentSize
Image icon proto_s.jpg134.69 KB
Image icon apkey_s.jpg177.82 KB

About a month ago I as I was looking for a keyboard for my Apple I replica project. I put out a message on several forums thinking I'd like to find an Apple II keyboard. Corey contacted me and suggested that I find an old Silent 700 and salvage the keyboard. I took his suggesting and found an Silent 745 on ebay that I bought. The keyboard is rather colorful. It also was un-decoded, just a big switch array. Electronically the keys were not on a grid compatible with any of the available encoders. So using technology that would have been available back in 1976 I designed my own encoder using an Intel 8748.

This project got really fun when I dug out my old 8748 programmer that I haven't used for 20 years. In a box of 5'n 1/4 inch floppies I found the original disks with the programmer software. Luckily I still had an old DOS machine in the garage with a 5 inch drive. I blew all the dust out and powered up the machine. After a few trial runs with blank disks I risked reading the old floppy, and found that the software still intact after 20 years! I installed the SW and then ran the setup program. I was quickly discouraged to discover that the programmer needed to be run on a machine with a clock between 4.77Mhz to 12Mhz. Damn! This old machine was slow, but not that slow. It was a 386 40mhz.

I do have a real universal device programmer but it doesn't support the 8748. Not wanting to buy another programmer I decided to reverse engineer the old programmer. To see what was going on I ran the programmer software under DOSEMU on linux. I set up DOSEMU to log all of the I/O calls. After a few sessions of logging I wrote a c program that would run under Linux to decode the I/O calls I captured. Once I went through all the I/O ports used to control the hardware I implemented the programming algorithm and had my programmer working again!

Now for some pictures... Smile

Offline
Last seen: 2 years 4 months ago
Joined: Jan 1 2015 - 18:57
Posts: 47
Re: My Funkey Keyboard

A bit more info...

The keyboard had 4 rocker switches. I used two for caps lock and the number lock function. THe other two I pulled out and replaced with momentary rocker switches of the same size and design. I wired those tow up to be used for the Apple I reset and clear switches.

In the SW for the 8748 I built a custom key map to ASCII table so I can easily reconfigure the layout for any keyboard. I also added N key rollover. The blue number pad was luckly positioned on the keyboard so when the numlock is set I still have access to A though F for HEX numbers.

I the picture you can also see a UART I striped up to send characters to my PC to see the actual results. As well as the TIL311's to display the HEX scan codes during development.

The red anodized box is my Saleae logic analyzer. If you are in need of a logic analyzer, and have never played with one do so! For the money they are simply incredible.

Offline
Last seen: 3 weeks 2 days ago
Joined: Oct 9 2011 - 12:54
Posts: 1352
Re: My Funkey Keyboard

Great work!!!

Is that the new Salae model with the built in oscilloscope? I have the older black 16 channel one and love it. I have recorded minutes of vintage systems booting to troubleshoot systems. They aren't cheap compared to the stuff you can get off ebay, but have the best software out there and the quality of the unit is very professional.

Your keyboard isn't funky, it's very 70's!!!

Cheers,
Corey

Offline
Last seen: 2 years 4 months ago
Joined: Jan 1 2015 - 18:57
Posts: 47
Re: My Funkey Keyboard

Thanks for the initial inspration Corey! I love how it turned out. Plus it was fun to did back into 8048 assembly.

Yes, the pro version displays the analog signal for every channel.

Ironically I first got into saleae by buying a 11.88$ knockoff on eBay. At the time I bought it I had no idea about the real thing. After downloading the saleae sw and using it for a bit I wanted the real thing. For Christmas I gave myself a 16 channel pro. It is well worth the money. I do a lot of embedded design that would be a lot more difficult otherwise.

The 11.88 is the cheapest marketing money saleae didn't have to spend. It got me as a customer.

With the keyboard done I'm going to star soldering together my apple 1 next.

Offline
Last seen: 3 weeks 2 days ago
Joined: Oct 9 2011 - 12:54
Posts: 1352
Re: My Funkey Keyboard

I wish the Pro existed when I bought mine, would have made my toolkit bag much smaller. Do you know if they have a trade in program? Smile

Offline
Last seen: 2 years 4 months ago
Joined: Jan 1 2015 - 18:57
Posts: 47
Re: My Funkey Keyboard

Not that I'm aware of. Although, I can't imagine it would be hard to see off your old one.

When I was designing the keyboard encoder I had all 16 channels used up. The analog was helpful as well on the pull up channels.

len

Offline
Last seen: 2 years 4 months ago
Joined: Jan 1 2015 - 18:57
Posts: 47
Re: My Funkey Keyboard

Quick question on keyboards. What control characters, if any, do any Apple 1 sowftware require?

Offline
Last seen: 3 weeks 2 days ago
Joined: Oct 9 2011 - 12:54
Posts: 1352
Re: My Funkey Keyboard

Well you could look for any control key you want when coding for it so I would support the full 7-bit ASCII range. Lower case does funny things when you send it though.

Cheers,
Corey

Offline
Last seen: 2 years 4 months ago
Joined: Jan 1 2015 - 18:57
Posts: 47
Re: My Funkey Keyboard

When I wrote my controller software the scan code just gets converted to an ascii character. I just never mapped the control characters. A few keys (Q, W, E, Y, L, H, M) did get other characters mapped to them just because of the existing legends on the keys. So come keys do currently have both a shift and a control function. The circuitry is designed to allow jumpering for an Apple 1, or to use it in another application. (Upper and lower ascii)

I really think it will just live life with the Apple 1 though. Before I put away my 8748 programmer I was thinking about adding mapping for the control characters that are not currently mapped. But I would really only do that is there is SW that needs it.

len

Log in or register to post comments