Saturday, December 14, 2019

All New ZX81 : A Minstrel Issue 3 Kit

Leave a Comment
A long time ago in a land far far away Sinclair Research released unto the world a ZX81 kit computer. This is not that kit, this is a brand new Minstrel Issue 3 computer, that happens to be an enhanced reworked ZX81 clone with 32k RAM.

Part Minstrel Review, Part Not

Over the last couple of years Dave Curran of Tynemouth Software has been busy designing and producing modern recreations of Sinclair's early home computer kit, the ZX80. Although in fairness, to call them recreations is probably a disservice. One of the major goals has always been to take the project to the next level and launch a full ZX81 work alike.

This of course is where the Minstrel Issue 3 comes into the picture, it being the first of Dave's fully functional ZX81 clones-ish computers. There are of course some differences, the most obvious being that there is no ULA, or modern equivalent, and the computer is entirely designed around discrete logic IC's . In a world full of FPGAs this refreshing.

To find out more on the inner working of the Minstrel family and the Minstrel 3 in particular Dave has written a number of exceptional blog posts that deserve a good read through.

See a Kit, Build a Minstrel

Kits Done Right: ICs Layed out as per the Minstrel Circuit Board
One of the first things I noticed when opening the kit is just how much thought and care has gone into producing it. From the PCB design to how the IC parts tray was laid out to match the PCB, all the way down to included documentation. First impressions count, and the overall presentation put me in a very good mood before I dared assemble anything.

With 25 ICs, plenty of resistors and capacitors the Minstrel takes some time to put together. While It's certainly no picnic to build, thanks to the layout and documentation it never seemed an insurmountable chore. In the end I managed to construct my kit in 4 reasonable sittings with a similar amount of coffee (coffee being a very accurate measure of time).

Using the Minstrel

After completion comes the power on, will it work will it not work? It didn't, but that was entirely my fault. A quick inspection latter, seems I'd failed to solder exactly one IC pin leg. Power on two, success! Aside from being quite elated at a fully working Minstrel, I was immediately amazed at just how clear the image emanating from it was. Truly the image quality is better than using an emulator, which in the case of a ZX81 style computer is a brilliant thing.

Of course it's not all about image quality. The Minstrel is designed to fit within a standard UK ZX81 case, as such it makes a pretty perfect replacement for a dead ZX81 board. Note that American ZX81 and Timex 1000 cases would require some modification around the video output holes for the board to fit.  

Minstrel Issue 3 Mostly Assembled
If placed inside a ZX81 case the only real clue to it not being a ZX81 would be the swapping out of the mono phono jack power socket for a barrel style one. This is possibly one of the finest moves possible, at least to the user. Going out on a limb here, but in my experience a wobbly phono jack is far more likely to cause an unexpected reset than that legendary RAM pack wobble ever did.

Like the original ZX81, the Minstrel does lack a of a power button. That's not really the Minstrels fault, it's more of a design limitation brought about by ZX81s case design. There are a number of solutions, the easiest is to just go out a buy an external switch from the 'The Future was 8 Bit'. It might be something that Tynemouth could include as an extra option at purchase time.

How Compatible is Compatible

I've not found any software so far that wouldn't work with the Minstrel, I dare say I won't be able to. The little computer is even compatible with a number of newer games and programs that take advantage of hires graphics modes, modes that required hardware modification on an actual ZX81.

Hardware expansions on the other hand may be a little to harder to guarantee due to both the modern design of the Minstrel and the esoteric nature of ZX81 expansions.

I've only a couple of expansion that I can test with the Minstrel, and I don't any 80s period hardware to throw at it. The best news is that the most required modern add-on, the ZXpand works perfectly, indeed Dave Curran in consultation with Charlie Robson the creator of the ZXpand is planning a special edition of the ZXpand specifically for the Minstrel. 

Also of note, the Zeddynet network interface, a card I've had trouble with on some actual ZX81s  work flawlessly. Internet meet Minstrel, a perfectly modern retro way to connect to the world.

Sadly for me one expansion didn't work, my ZX-Keys Expansion card. After speaking to Dave on the matter I have some leads on as to why, I'll have to see what can be done on a revision 2 of my boards. For the moment the ZX-Keys keyboard works perfectly using the Minstrels internal keyboard connector. 

Adding a ZX-Key Keyboard

I have some future plans for my Minstrel involving a custom case and a full sized keyboard. For the moment though I need a working keyboard (There are keyboard options at kit purchase time). As discovered earlier my ZX-Key Expansion card didn't work so I built a temporary adapter board for the ZX-Keyboard.

Internal ZX-Key Keyboard Adaptor
The resulting kludge is a simple wire up job on some protoboard On the Minstrel I soldered on a Female Header Socket Strip to plug it into. Nothing groundbreaking here then. The next step will be to make up a proper PCB board. On the temporary one I've only wired up the bare essentials, the keys. The keyboards LEDs and reset button don't work and it all looks a little messy. Still I do have a nice modern-ish keyboard to use with a nice modern-ish ZX81 clone.

In Summary

I have to say I've been very pleased with the Minstrel kit. It's fun and rewarding to put together and in all honesty it's a much better computer than ZX81. If you enjoy assembling kits then go get one, if you don't know one end of a soldering iron from another Dave supplies them pre-built too.

Now of to play some games, how about a nice game of Tut-Tut?

Minstrel up and running playing a little bit of Tut-Tut

Read More

Wednesday, November 20, 2019

The NEC PC-8401 Reexamined: Part 2

Leave a Comment

RAM Expansion Cartridges

One of the shortcomings of the NEC PC-8401 is the lack of RAM. By default the computers base 64k is divided in half between file storage and system memory. While 32k is plenty for running the software available in ROM, this limits options when running other software that may require large amounts of memory. Conversely the remaining 32k of RAM dedicated to file storage as a RAM disk places similar constraints on user file and program retention.

Fortunately memory limitations could be alleviated with the addition of RAM expansion cards. These RAM cartridges were to be available in 3 sizes, 128k, 64k and 32k. Rather than adding directly to available application memory, the expansions are used as RAM Disks and must be formatted by the Operating System before use. Once the additional storage is available the PC-8401s base memory may be configured to use the full base 64k as application memory or you may keep existing 32k shared memory split.

No RAM Expansion Attached
32k: Applications RAM
32k: RAM Disk Drive A:

RAM Expanded Machine Option 1
32k: Applications RAM
32k: RAM Disk Drive A:
32/64/128k: RAM Disk Drive B:

RAM Expanded Machine Option 2
64k: Applications RAM
32/64/128k: RAM Disk Drive A:

The PC-8406A 32k RAM Cartridge

The PC-8406A 32k cartridge internals are relatively compact, containing 74 Series logic chips and 16 D446G-15 NEC 2K X 8-BIT SRAM chips mounted on both sides of the circuit board. The SRAM contents are maintained by a CR2032 lithium battery; during battery changes the carts can be powered externally via a 5v barrel jack. Interestingly for the time, just about all the chips contained on the PCB are SMD variants.

The PC-8406A 32k RAM Cartridge.

Unfortunately the PC-8406A 32k pack is on the smaller side of useful, and probably best as a temporary storage device for moving files around. It's not a serious contender as a mass storage device. Even by the file and program sizes of the 1980s it's small. You could for example install MS BASIC on the drive, but then you have very little storage space left for saving programs.

Underside of the PC-8406A 32k RAM Cartridge.

Niggling issues with the NEC PC-8401s overall design choices only increase from there, being that other mass storage devices available of the computer such as the PC-8431A Micro Floppy Disk Unit make no provision for using the RAM carts at the same time, and even the CRT adaptor precludes the usage of the RAM cart as the PC-8401's expansion port provides no means of connecting multiple add-ons.

Effectively there is no easy method of copying the contents of the RAM cart to less volatile floppy disk media. The limitations of the 32k cart apply to a lesser extent to the 64k and 128k expansions, however due to how the PC-8041's memory management works the higher rated cards are inherently more useful as storage mechanisms to begin with.

Severe limitations and all, the RAM carts do help turn the base unit into a more practical computer. Even the 32k cart certainly enhances the PC-8401 user experience, especially in its predicted role as a word processing and spreadsheet powerhouse.

See all entries for this project:  Part 1Part 2

Read More

Sunday, November 17, 2019

ZX81 Game: TuT-TuT - Editions

Leave a Comment

What news of the ZX81 version of the TuT-TuT since the initial release you ask? Well there are some exciting developments that need some sharing.

Physical Tape Release of TuT-TuT

I'd mentioned in the previous post that a physical tape release was in the works. Simon Ullyatt and his brilliant retro publishing label Cronosoft will be releasing the game in the not to distant future.

Simon is busy putting the game through some additional testing on real hardware, checking the loading from real tapes and the like. Then of course there is the small matter of cassette production, once all is confirmed the release date will be announced, so stay tuned for exact dates.

Of course what's a physical tape release without some good cover art? After an intense drawing session on my part and some quality layout work on Simon's side of things we have a tape inlay cover ready to go. Those mummies really look menacing, would you dare enter this tomb? (Of course you will)

Coming to a Tape Player near you, the Soon to be released Tape version of TuT-TuT  

UDG 4 ZXpand Edition 

For those fortunate enough to own both a ZXpand and a UDG 4 ZXpand expansion cards for their ZX81s, Moggy from over on the Sinclair ZX World forums created a User Defined Graphics set for TuT-TuT. Don't have the expansion or a ZX81, no need to worry the enhancements can be used with the excellent EightyOne Sinclair Emulator.

All instructions on how to use the UDG version in an Emulator or with a real ZX81, along with the required files are all now included in the TuT-TuT tape file download.

Original ZX81 version and the enhanced UDG 4 ZXpand graphics set.

Get TuTing on an iPhone

In need of a mobile on the go fix of some TuT-TuT action? Kevin Palser has your desires covered if you're an iPhone / IOS user. TuT-TuT is to be included in the next release of the his ZX81 for IOS emulator. The latest version of the emulator should be appearing later this week (Late Nov 20119).

The ZX Spectrum Version

The ZX Spectrum version of TuT-TuT has been a huge success all off it's own. A big thanks for the overwhelmingly positive reviews circulating out there in the wild.

A special shoutout to Ewan Spence for his play through of the game on his Retro Spectrum YouTube channel. It's been great to see so many great reactions to the game. Who would have thought a game written in Spectrum BASIC could be such a hit in 2019.

The Spectrum version of the game was all about challenging the idea that Sinclair BASIC couldn't be used effectively in games creation, I think I've managed to help in some way to bust that myth. If you haven't yet, go grab yourself a copy from Paleotroic Magazine and get playing, remember to check out some of the other articles while there.

The ZX81 Version is more than a Conversion

If you've had fun playing TuT-TuT on the ZX Spectrum be sure to give the ZX81 version a play through.

Unlike the Spectrum TuT-TuT, the ZX81 game is not written in BASIC, this left the door open for some enhancements of gameplay and features. While some of the levels will be familiar, many have been subtly changed and many more added, in fact there are almost twice the amount on the ZX81.

Getting a Copy of TuT-TuT

ZX81 Versions

ZX Spectrum Versions

Love the Game?

Read More

Tuesday, October 29, 2019

ZX81 Game: TuT-TuT

For the October 2019 issue of Paleotronic Magazine I took on the challenge of writing a ZX Spectrum game in BASIC. The result being the fast paced Halloween inspired, Ancient Egyptian themed arcade puzzler Tut-Tut. Now with the Spectrum version sorted, how about a ZX81 version of the same game, only better?!

Tomb Raiding with a ZX81

It's coming to the end of 1921's digging season in Egypt. Your excavations have not gone so well this year, failing to find any trace of the legendary and as yet undiscovered Pharaohs tomb. Then in your final weeks wild stories recounting the wrath of vengeful mummies strangling would be tomb local raiders filter back to base camp.

At last some concrete leads worth looking into, and opportunities to good to pass up. Oculist tales of curses be dammed, you're an Egyptologist and grand adventurer, such nonsense can't possibly hurt you. Or can it?

How far into the tomb of the Pharaoh can you make it? 

Playing the Game

Tut-Tut is one part puzzle, two parts arcade action. The game is comprised of 28 levels, plus a hidden treasure chamber which may only be opened if you are deemed worthy.

Collect gems, amulets and bracelets for points, you'll need 5000 before the end of "Sutekh's Eye" (level 28) for the treasure chamber to open. Amulets and Bracelets will freeze the player or halt mummies respectively.

To complete each level the player will need to collect keys, open doors, move blocks before finding exits to lower crypt levels. Keep an eye out for Pharaohs roaming guardians, they're not the smartest of the undead but they are relentless.

Keys are: O’ left, ‘P’ right, ‘Q’ up, ‘A’ for down and ‘R’ to reset the level (at a cost).

Details on where and how to acquire a copy of TuT-Tut are listed at the end of this blog entry.

The reMaking of TuT-TuT

The original version of Tut-Tut was written as a type-in game for the ZX Spectrum and published in Paleotronic Magazine. The game was entirely constructed in BASIC, this presented numerous challenges, the the greatest being the problem of speed and squeezing enough of it out of the machine. The trials and tribulations of undertaking that task on the ZX Spectrum is pretty well documented in the magazine.

I had considered re-pointing the BASIC game to the ZX81, but the challenge of writing a good game in BASIC had kind of been dealt with. The greater challenge on the ZX81 is in presenting an atmospheric game that transcends the limits imposed by the machines most obvious shortcomings; black and white predefined chunky graphics. To that end the ZX81 version of Tut-Tut has been written in C, targeted towards Z88dk for compilation.

TuT-TuT: ZX Spectrum vs ZX81 Version
I've been careful to maintain the core game play between versions. The choice not to use BASIC could have been a catalyst to greatly enhance elements such as enemy mummy movement for example. The choice not to change to much has however kept the feel of the game, and ensured the overall design feels consistent.

Despite remaining essentially the same game, opportunities have been taken to add additional elements. The size and scope of TuT-TuT has increased, there are now 28 normal levels, plus 1 special level. Extra levels necessitated the creation of a couple of additional items to hold player interest; Amulets and Bracelets provide chances for scoring extra points alongside the potential disadvantage of actually interacting with the items.

That's about it, be sure to check out the article in Paleotronic and enjoy both the original and especially this ZX81 enhancements. Special thanks to Paleotronic for both suggesting and providing the space the Spectrum game and a shout out to Rod Bell for supporting the project.

Be sure to check out Rods video review of the ZX81 TuT-TuT Demo Version

Getting a Copy of TuT-TuT

ZX81 Versions

ZX Spectrum Versions

Love the Game?

Read More

Friday, August 09, 2019

The NEC PC-8401 Reexamined: Part 1

A few years back I came across an NEC PC-8401 and proceeded to write up a number of articles during a Retro Challenge month on the machine. Going by blog statistics since RC2017 ended, the NEC PC-8401 is just about as popular in 2019 as it was in 1984. Which is to say not at all. A sad state of affairs then, unlikely to be remedied by further posts concerning this laptop-esque computer. Still, no harm in trying is there?

NEC PC-8401 with PC-8431A, PC-8441A & PC-8406A Expansions

A quick re-acquaintance With the PC-8401

For those who haven't read previous articles on the subject; the PC-8401 series of computers was one of NEC's attempts at introducing portable computing to the business masses. It's main focus is productivity applications, with Wordstar-To-Go, Calc-To-Go, Filer (card filing program) and telecommunications software built into ROM all spring boarding off a CP/M 2.2 OS core.

On the hardware front the 8401 comes with a Z80A CPU, 64k battery backed static RAM (this is shared between RAM and RAM Disk), a rather splendid mechanical Alps keyboard and a just reasonable 80 column x 16 line reflective LCD display panel. Additionally some versions came with a built in 300 Baud modem (sadly not much use today).

When at home or in the office, the machine is powered externally via a suitable 5v to 9v power brick. But what good is a laptop if you can't use it at the pub? Four C Cell batteries answer this pressing need, providing portable power while additionally retaining computer settings and program memory.

Not Quite the Standalone Computing Powerhouse

There are 2 major issues with the PC-8401 as a standalone laptop computer. Firstly and most importantly is the lack of physical memory. While the computer has 64k, 32k is devoted to file storage. This is just enough to keep some documents and spreadsheets stored on the device, but severally restricts what ever else you might like to store on the computer.

Secondly, the screen is problematic, it is usable sure, but it isn't great by any stretch of the imagination. The contrast is poor, and compared to the LCD panel clarity of something like the Tandy model 100 it is not up to the task as a main display for extended periods of time.

It's the Peripherals that Make the PC-8401

It  is the bewildering array of peripherals that lift the PC-8401 onto another level. Memory expansion modules, disk drive adapters and CRT monitor modules turn the basic unit into a fully functional C/PM workhorse. Turning the humble PC-8401 into just the kind of computer you'd want if determined to look oh so very serious about your office computing in 1985.

Perhaps the most valuable peripherals are the Disk adapter, CRT/disk adapter and memory expansions unlock the 32k constraints on storage. The base memory can be configured to use the full 64k, with all storage being taken care of by 3.5" DD disks or the memory expansion modules.

OK so Why the Renewed Interest?

Up until now I've not had more than the base unit to play with, and unfortunately even that started to suffer from some LCD problems with the conductive backing peeling of the panel. Luckily, over the past few months I've managed to secure a number of the much vaunted peripherals and a mostly working LCD panel.

So with a (mostly) working LCD panel in place, we can begin exploring the following over the next couple of blog entries:
  • PC-8406A 32k RAM Cartridge
  • PC-8441A CRT/Disk Adapter
  • PC-8431A Micro Floppy Disk Unit

I can confirm that the PC-8441A and PC-8406A are working just fine, however the PC-8431A is yet to be tested as it's a USA version with the wrong power supply for Australia. Not a huge obstacle, although it has delayed testing.

NEC PC-8401 with working PC-8441A CRT/Disk Adapter
In Part 2 we'll begin getting to grips with the expansion units and some of the issues I have with them. This all promises to be quite interesting, hopefully serving to bring this unique CP/M laptop somewhat out of obscurity.

See all entries for this project:  Part 1Part 2

Read More

Sunday, June 30, 2019

UK IBM Model-F XT Keyboard in LINUX

Leave a Comment
UK IBM Model F XT Keyboard and Soarer's Converter

The Model F keyboards produced for IBMs original PC's the 5150 and 5160s don't play nicely with modern computers. Incompatibility is largely due to the changes in the key encoding protocols adopted for AT style PC keyboards. This lack of compatibility has been a real shame as by enlarge the keyboards are mechanically superior to the latter Model M.

Like the Model M, the F's mechanical keys are designed around buckling springs, unlike Model M's however the F series use capacitive PCB's and not rubber membranes to register key travel, leading to a superior if more costly to produce mechanical keyboard.

Of course all this history is largely redundant if you can't actually use a Model F keyboard on today's PC's. Luckily for us with the use of an easy to come by adapter the "XT Keyboard To USB Soarer's Converter" it's quite a simple task getting a 38 year old keyboard up and running without much fuss. If wish to build your own adaptor all the plans and files are available for the Soarer converter on Geekhack.

Having come across a Model F recently, I took the easy option of ordering a pre-made converter. Everything worked brilliantly and I had a perfectly functional keyboard in minutes. Although there was a minor issue with the keyboard layout. Oddly for Australia where we normally have US keyboards, the Model F in my possession has a UK layout this takes a little extra configuration before working just right with LINUX.

UK Keyboard, the Simple Part

The easy part is simply adding a standard UK layout to the existing keyboard configurations. In XFCE this is normally done from Settings/Keyboard. The exact location and nature of the settings tool will vary between XFCE, GNOME or the KDE desktops, but process remains the same. The UK mapping will take care of 95% of out layout changes, however there are 3 keys on the UK layout that do not match with the standard 101 AT layouts. The misbehaving keys are " \ ", " ' " and " # ".

Quick and Dirty Config Change

Ubuntu based LINUX distributions use XKB to configure and drive keyboard layouts. To make lasting changes that will survive all distribution and package upgrades we would need to write configuration files specifically for the Model F keyboard, but there is a quick and dirty hack we can employ. As long as the Model F is your only intended UK keyboard, and we are aware we may need to redo any changes after a package upgrade, we can simple edit the default UK layout file.

First open XBB's keyboard UK symbols file for editing

sudo nano /usr/share/X11/xkb/symbols/gb

Find the default layout, this should be at the top of the file and make the below changes highlighted in red.

default  partial alphanumeric_keys
xkb_symbols "basic" {

    // Describes the differences between a very simple en_US
    // keyboard and a very simple U.K. keyboard layout defined by
    // the SVR4 European Language Supplement and sometimes also
    // known as the IBM 166 layout.
    // Modifications for IBM Model-F Keyboard

    include "latin"

    name[Group1]="English (UK)";

    key  { [         2,   quotedbl,  twosuperior,    oneeighth ] };
    key  { [         3,   sterling, threesuperior,    sterling ] };
    key  { [         4,     dollar,     EuroSign,   onequarter ] };

    key  { [apostrophe,         at, dead_circumflex, dead_caron] };

    // key  { [     grave,    notsign,          bar,          bar ] };
    key  { [    numbersign,     asciitilde,          bar,          bar ] };

    // key  { [numbersign, asciitilde,   dead_grave,   dead_breve ] };
    key  { [ backslash,        bar,       notsign,        brokenbar ] };

    // key  { [ backslash,        bar,          bar,    brokenbar ] };
    key  { [ backslash,   bar,            backslash,      bar ] };

    include "level3(ralt_switch_multikey)"

After saving you'll need to log out or reboot the Computer. Once logged back in again the Model F should work like a charm in UK mode. You could even right a blog post with it.

Read More

Wednesday, May 29, 2019

ZX-Key, External Keyboard For ZX81s and Other Micro Computers: Part 5

The ZX-Key ZX81 Keyboard in Full Case

The Full Case For ZX-Keys

I've been promising a full keyboard case for the ZX-Keys ZX81 keyboard for a while, now at long last it is (almost) complete. Complete enough that have in my hands a freshly minted case fresh from Shapeways, and it looks gorgeous.

The Full Case builds on the Starter Case covered in the previous blog post, adding the top half and a bottom plate. As mentioned previously only the Starter case is really required, but for some smart good looks the top half is a must have. Of course for the sake of competness a bottom plate may also be attached.

Exploded Viw of the ZX-Keys Case Components
 The top half of the case is really where all the action takes place. The ZX-Keys mode indicator LEDs and reset switch are slightly recessed at the back, with some nice speed lines running either side, lending a retro 80s feel. A small hole is left open to the right of the case allowing a USB lead to be plugged in when using the keyboard with a PC or MAC. At the rear of the case the IDC connectors for serial out and direct connection the ZX-Key expansion interface are nicely flush.

ZX-Key ZX81 Keyboard - REar View
The Rear of the ZX-Keys Keyboard Case, Showing the Flush Mounted IDC Headers.
The whole unit is help together with 3mm diameter case bolts. A 6mm bolt and nut hold the centre of the base plate to the keyboard, all other bolts are 8mm in length and may be screwed firmly into to case holding the unit tightly in place.

ZX-Key ZX81 Keyboard - Side View
Right of the ZX-Keys Keyboard Case, with cutout for micro USB Access.
Attached to the inside of the top case is a sprew containing two Switch Cover components for mounting on the keyboards reset switch. The exact Switch Cover to be fitted on assembly depends on the micro switch found on the ZX-Keys PCB. A hollow stemmed version for use with long barreled micro switchs, or a flat bottom variety if shallow micro switch is in place. The Switch Covers should be placed inside the top shell the before assembly.

ZX-Key ZX81 Keyboard - Under Side View
ZX-Keys Base Plate and Mounting Bolts.
The only real issue I have with the beta case print is with the base plate. I found the plate to be a little flimsy, and it'll need to strengthening it before general release. Notably the grill like pattern on the base will be removed and made solid. Additionally the riser bars along inner sides will be widened to add a little extra rigidity.

The ZX-Key ZX81 Keyboard and Interface Card Connected to a ZX81
My ZX81, pictured with the complete ZX-Key Case and ZX-Keys Interface Card.
The ZX-Keys itself is for sale on Sell My Retro, At the time of writing there is one unit available, never fear more are on their way very soon. The Starter Case can be found on Shapeways., and the Full Case will be made ready for purchase there very soon.

Once I've completed work on the Full Case design a DIY Beginners Case for home 3D printing will also be made avaliable. The Beginners case will be based on the Starter Case design, although it will not be full compatible with the complete case units. All will be announced ASAP.

Update: All Case Parts are now avaliable for order from my Shapeways Shop.

See more entries for this project: Part 1Part 2Part 3Part 4, Part 5

Read More

Sunday, March 10, 2019

ZX-Key, External Keyboard For ZX81s and Other Micro Computers: Part 4

Leave a Comment
Some of you may have noticed that a batch of ZX-Key units went up for sale on Sell My Retro over the weekend. This has been a great achievement and would not have been possible without some much valued help. When I started this project I'd only intended to make a keyboard for myself but soon found a lot support and others desiring a modern mechanical keyboard implementation for 80s micro computers.

To that end I would very much like to thank Spencer Owen of RC2014 fame for his contributions and ZXkim81 for embracing the idea so fully that he's about to test out the first DIY kit version of the ZX-Key.

Now onto some more about the project so far.

Sundry ZX-Key Design Decisions 

This post is primarily centred around some design decisions on the Case for the Keyboard and the Selection of Key Switches.

Mechanical Key Selection

Selecting the right Mechanical switches for the keyboard was a slightly more difficult task than you might imagine; in the end I chose Gateron Yellows, a firm to medium weight linear switch. The reason for this is twofold, and all to do with how the ZX81 registers key presses.

The ZX81 can be somewhat sluggish in registering keystrokes. While this is normally quite fine when entering text with the membrane keyboard, moving to a mechanical keyboard makes this lack of speed somewhat more noticeable. This is the reason behind the use of a linear switch, over a clicky one such as MX Blues. While a real keyboard is far more tactile, the use of a clicky switch would give an undue impression that a ZX81 had actually registered the key press when in reality it hadn't.

Gateron Yellow Keyswitch, the Perfect Match for a ZX81 Keyboard

Related to the above;  the use a firm linear switch adds a certain amount of weight, possibly unconsciously slowing down the natural typing rate, bringing key strokes more into line with what a ZX81 expects. On testing I found Gateron Yellow switches a nice match to requirements, and the main reason for not going with the firmer MX black was in keeping the typing experience pleasant, particularly for people not used to (overly) heavily weighted switches.

A Case to Start

All keyboards need a case of some sort. The trouble here of course is that all bespoke keyboards require a very specific case, one that can end up being quite the expense. For the ZX-Key keyboard case my main goal was to first make it relatively affordable, and secondly I desired a design that could be upgraded over time.

Essentially the Starter case I came up with is more of a keyboard frame than a full case. The ZX-Key keyboard is screwed in place with some 3mm diameter 6mm long case bolts. Provision on the base has been made for standard 12 x 12mm rubber feet to stop the keyboard from sliding around on a table.
The ZX-Key  ZX81 Mechanical Keyboard in Starter Case
The ZX-Key Keyboard Mounted on the Prototype Keyboard 'Starter' Case
Also of note, the case has a gentle 2 degree slope from front to back for an easy typing angle. A higher angle felt a little exaggerated on such a small keyboard.

I've been using the initial prototype for some time now, and have found it provides quite a good level of rigidity. I did make a few errors on the original, mostly around spacing, and in the height of the lip around the keyboard PCB. All issues have been addressed and the fully revised version of the ZX-KEY Keyboard 'Starter' Case has been made  made available on Shapeways.

Bottom of the Prototype Keyboard 'Starter' Case
As alluded to, there will be 2 more case parts designed, a simple backing for underneath the keyboard and a somewhat more elaborate top half styled to suit a Sinclair product. However I felt it important to make these components entirely optional, particularity as larger 3D printed objects can become quite expensive.

Of course the case as a whole is entirely optional, and if you make your own then I would welcome seeing pictures.

Final Production Ready ZX-KEY Keyboard 'Starter' Case as Found on Shapeways

I will be releasing the complete set of case parts to Shapeways in the coming month or so, if you would rather wait for the complete unit.

See more entries for this project: Part 1Part 2Part 3Part 4Part 5

Read More

Thursday, March 07, 2019

ZX-Key, External Keyboard For ZX81s and Other Micro Computers: Part 3


The main goals of the ZX-Key project has been to build a mechanical keyboard usable on real ZX81s, PCs (particularly in emulators) and on the RC2014 or other computers with serial keyboard inputs. This entry we'll go over a couple of the details relating specifically to the Keyboard component of the build.

Final prototype ZX-Key ZX81 Keyboard
The ZX-Key Keyboard

The ZX-Key Keyboard

The keyboard layout is based around the 8x5 matrix format found on the Sinclair ZX81 and ZX Spectrums, which makes sense as that's what it's designed to be used with.

The main keyboard circuit is also almost identical to a ZX81s, with the addition of a Arduino Pro Micro enabling the ZX-Key to be used as a regular USB PC keyboard. Connection to the ZX-Key ZX81 expansion interface is facilitated by  a 16 pin IDC header.

Additional diodes have been added to the 5 row lines, these  prevent some issues found when testing the prototype keyboard with a ZXpand expansion card. When the ZXPand read an SD card, its current draw caused some instability with the Arduino. This problem was also addressed on the ZX-Key interface card by proving it with an independent voltage regulator.

A reset line has been brought out from the ZX-Key interface card, and is presented on the 16 IDC header so there is no need to turn the ZX81 off and on to restart the computer. Similarly the 6 pin IDC connector provided for TTL serial communication also provides a reset line broken out for using the keyboard in conjunction with a RC2014 micro.

The pull down 100k Resistor on Column 8 allows the Arduino to detect the presence of a ZX81. As the Arduino powers on or when reset it first tests the status of this column to determine what mode it should start in, either Standard USB / PC or ZX81 mode.

ZX-Key Keyboard Schematic

The Arduino Bit

While connected to a ZX81 the Arduino is essentially dormant, only handling some minor LED visual indicators. However when not connected to a ZX81 the Arduino Pro Micro takes control, turning the keyboard into a fully functional USB HID (device).

In ZX81 mode with the ZX-key interface connected via an IDC ribbon cable, the ZX-Key will behave as a standard ZX81 keyboard, except with a much improved typing experience. When the keyboard is unconnected, plugged in via USB or serial port the keyboard will start in Standard PC mode.

Keyboard modes and selected layers are indicated by a cluster of three LEDs on the right hand side of the keyboard. There are three keyboard Layers, Standard, Emulator and ZX81. You can switch between Standard and Emulator layers by holding down SHIFT, FUNCTION (ENTER), and GRAPHICS (9) key combinations. The Standard layer has 3 main modes and each of these has a SHIFT layer, this gives access 98% of the keys to be found on a normal USB keyboard.

LED States
Layer & Mode Selected
Standard Layers: Keyboard Mode and Function Selection
NormalNormal mode. All keys are in Standard US Keyboard configuration.
SHIFTWhen in Normal Mode: Symbols in Red are selected. Where these red keys are commands, for example 'EDIT or SLOW' they have been replaced by another symbol. All common symbols are present on the keyboard. Note that SHIFT keys effects vary in each of the other modes
SHIFT,FUNCTIONChanges to Function mode. This selects upper case characters. Pressing the SHIFT key in this mode will select symbols as normal.
SHIFT,GRAPHICSAll the number keys are now there equivalent 'Fx' key, ie. '1' becomes 'F1'. All Letter keys become 'CTRL Letter'. Holding down the SHIFT key in Graphics mode changes the letter keys to 'ALT Letter', number keys '1' and '2' become 'F11' & 'F12'.
Emulation Layer: For use with ZX81 or ZX Spectrum Emulators
SHIFT, FUNCTION, GRAPHICSKeyboard will enter the emulation mode. All Standard Layer mode functions are disabled. This allows Emulation packages to detect key presses as using a standard USB / PS2 keyboard.

You can go back to the Standard layers at any point for entering program Emulator menus with 'F' keys for example.
ZX81 Layer: For use with a real ZX81 plugged into the ZX-Key Interface
Auto DetectionThe ZX81 layer is selected automatically if the keyboard is connected to a ZX81 using the ZX-Key Interface. You can't deselect this mode.

Next time: I'll finalise with the 3D printed case, attach the software and more.

See more entries for this project: Part 1Part 2Part 3Part 4Part 5

Read More

Wednesday, February 27, 2019

ZX-Key, External Keyboard For ZX81s and Other Micro Computers: Part 2

This blog entry I'll take a quick look into the ZX-Key Expansion interface required to get the ZX-Key Keyboard working with a ZX81.

ZX-Key ZX81 Keyboard Interfacte Card
Final Production ZX-Key Expansion Interface

The ZX-Key Expansion Interface for the ZX81

Primarily the expansion board is based on Wilf Rigters' designs. Changes I've made along the way have been minor, and don't on the whole modify how the original design works. Best refer to Wilfs article for an excellent account and explanation. It's enough to say that there are two 74HC245 ICs that handle the decoding of the ZX81s BUS and afford the implementation of a matrix keyboard.

The modifications I've ended up making to the original design have been necessitated by the desire to use the Keyboard component of the project with ZX81s, the RC2014, (or other mircos) and PCs via USB.

First Iterations

Initially I breadboarded a portion of the circuit for some basic testing, just for a bit of satisfaction. Unsurprisingly that worked perfectly fine, so went ahead and built up a prototype PCB version.

Breadboard Test
For the PCB I added a +5v rail for powering an Arduino Pro Micro which is located on the keyboard PCB and also broke out the ZX81s reset line. In addition diodes used on the row lines have been moved from the Interface to the Keyboard PCB (See the Keyboard Blog Entry - Coming in Part 3).

All seemed to work just fine (after a stupid layout issue and a bit of trace cutting), however on deeper inspections I ran into a major problem when using the popular ZXpand SD card reader in conjunction with the keyboard. The ZXPand would often not read an SD card, or if it did would load corrupted applications or files.

This seemed to be a power related issue, as powering the Arduino Micro via USB instead of through the ZX81 mostly resolved the problem. Removing the Arduino entirely completly solved the issue, with the keyboard working normally. In summary while the decoder interface worked fine, it didn't in combination with the enhanced keyboard.

Testing the ZX-Key Prototype Keyboard and Interface with a ZX81
The First Iteration: Well it seemed to work fine, but a ZXPand looms in the background.

Second Iterations 

To resolve the power problems I added voltage regulator, this takes power from the +9v rail supplying both the interface and the attached keyboard. Additional diodes on the column lines were also added to the keyboard PCB.  Thankfully these changes solved all the niggling issues with the ZXpand.

Due to the additional diodes on the Keyboard increasing the voltage drop, the CMOS 74HC245 ICs were replaced with 74HCT245 ICs, the TTL level equivalents. TTL signals provide an extended logic level voltage range counteracting the voltage drop in the signals coming from the Keyboard.

Interestingly, the changes made to the keyboard and the changes made to the interface both worked independently. So I've managed to solve the problem twice.

ZX-Key Expansion Card Schematic

See more entries for this project: Part 1Part 2Part 3Part 4Part 5

Read More

Wednesday, February 13, 2019

ZX-Key, External Keyboard For ZX81s and Other Micro Computers: Part 1


Ever dreamed of a decent external keyboard for your ZX81? Ever thought you needed the perfect keyboard to use with ZX81 emulators on the PC or a Raspberry Pi? Or how about a keyboard to compliment the RC2014 or perhaps another 8bit hobby project? Well I desired all these things in one convenient package, now finally after a little hard graft I have just such a keyboard.

ZX-Key Keyboard Connected to a ZX81 via expansion interface
Near final design of the ZX-Key, the keyboard connected to my ZX81 via expansion card.
Over the next few blog entries I'll attempt to detail the construction of what would become the ZX-Key, a keyboard Designed to be used on multiple projects.

Starting Out

I've been flipping between several small projects recently, and all these have required a keyboard of some sort. I really desired a keyboard that would be usable by all of these builds. Of course you could argue that a USB keyboard would be good enough, but then there is no fun in that at all, plus what would a blog called ZX81 Keyboard Adventures be if the keyboard didn't work with a humble ZX81 as well.

The idea behind the ZX-Key came from two sources. Initial inspiration came from Chris Oregan of The Sausage Factory fame (although for Retro Asylum at the time) and live steam featuring his ZX81 setup which includes an original Memotech Keyboard. I'm not afraid to admit I was quite jealous of Chris's keyboard. Secondly Spencer Owens Universal Micro Keyboard for his RC2014 would from the starting point of the ZX-Keys design.

Chris Oregan's ZX81 with Memotech Keyboard
Spencer designed his RC2014 Micro Keyboard around the layout and configuration of the ZX Spectrums, which by more than coincidence is near identical to that of a ZX81s. With the use of an Arduino Pro Mini his keyboard can be connected to a PC via USB oa TTL Serial to the RC2014. Allowances are also been made for direct connection to a Micro Computer, such as the ZX81.

As I've built a number of USB keyboard interfaces designed to work with Sinclair related keyboards before, including the whole reason for this blog site the AZ15, borrowing from the ideas behind the RC2014s Micro Keyboard seems a natural fit. Talking to Spencer this idea has come a little full circle as we've both taken inspiration from Dave Curran's (Tynemouth Software) projects.

With the basic idea of the keyboard at hand, I needed a way to connect it to a ZX81. For this there are two options, either connect directly into the heart of the machine replacing the existing membrane keyboard, or build an external expansion interface card for ZX81 and keyboard. The cleanest option being the second. I'm certainly not the first person to want a quality external keyboard and therefore not the only person ever to build an expansion card. Back in 2004 Wilf Rigter published the schematic of his ZXKBD v3 ZX81 keyboard expansion and it is this design that would form the core ZX-Key's expansion card.

That about wraps up the starting point of the project, next time I'll take a look into the core of the keyboard, it's layout and some of the choices made for the final design.

Before I move on, here is a quick YouTube video preview into the (near) final product working with both an emulator running on a Raspberry Pi and then connected to a ZX81 via the expansion card.

See more entries for this project: Part 1Part 2Part 3Part 4Part 5

Read More