Just yesterday, the RJ10 phone cables arrived. I unpacked them, and they laid on the desk, staring at me. I decided to take the plunge – I decided to start the Kaypro 4.
(For Physical details, see my last post about it).
Before attempting something like this, especially with old equipment, it’s always good to do some reading. With no known history, we don’t know if it had any failures or repairs in the past.The first thing to do is some reading, some of which I started when writing the last article.
It turns out that many Kaypros (just like Apple II’s) had a likely issue with the power supply capacitors where they would pop and smoke as the paper insulators failed. Somehow I decided, given the replacement wasn’t so difficult, I’d give it a go anyway – aside from that, I noted that their power supplies had white paper PCBs – turns out these were Astecs, and my blue PCB power supply was a California DC. How did I find that out? Some good guys had uploaded service technical manuals (Part 1, Part 2) for Kaypros which detailed this exact fact!
The service manuals were a wealth of technical information – schematics, technical tips and procedures. You don’t see that nowadays!
I also took a look around and I found the manual to the floppy drives – Tandon TM-100-2 which gave me some interesting information – these were belt driven floppy drives! I had never seen nor used one before, and that’s another thing that could fail. These drives were not very reliable even when new, many were swapped out for others. Repairing them would be a big challenge for me – under equipped, with many parts no longer available, and a lack of willingness to spend vast amounts of time and money to fix them.
But enough with the negatives. It was still worth a shot, the excitement of turning on something 30-years old was irresistible.
The initial test
If there’s anything which I’ve been taught when testing old disposed gear – it’s that shorts and other faults can draw drastic fault currents causing smoke and possibly fire, and blown fuses. Incorrectly repaired, wired or blown parts could result in live cases and cascading failures.
Repairmen deal with these safety issues by limiting current using a bulb in series with the power supply (although this is a bodge, I don’t have one), or by using a variac and an isolation transformer (not cheap, I don’t have one either). I got around this problem with a car battery, a car battery charger and a cheap modified-sine-wave (square wave) inverter.
The idea is that I would charge the old spare car battery with a rubbishly cheap car battery charger. This would hold a limited amount of charge (about 30 minutes of use) and act as an “infinite capacitor” smoothing out the ripple from the charger. The charger would continue to top up the battery while I generated my AC from the battery.
Because my inverter is a 300w power limited model – the results of overloads are “limited” and the inverter shuts down and locks-out pretty quickly. That’s safety! But unfortunately, the modified sine wave (square wave) output causes stress on components (harmonic currents) and lots of buzzing in transformers – so it’s only good for a quick test.
I set the unit down and plugged it all in, and cautiously flipped the switch on the inverter.
Tick tick, whirr, and a high pitched squeal (the scanning frequency is upper-audible range) from the CRT. Keyboard caps lock light on. IT’S ALIVE!
I couldn’t resist but to put in the master disk and see what would happen –
Yes! I got a CP/M prompt! The system has booted, and it’s waiting for my every command.
Your wish is not my command!
As I had reasoned, the first thing I need to do is to copy the CP/M boot floppies. Easy, I’ll just type in COPY<CR> as the manual had instructed.
I push C, nothing. I push it repeatedly, nothing. NOTHING!?
There’s a caps lock light, but it wouldn’t turn off. There was no keyboard beep. Something’s wrong with the keyboard. Not using a regular PS/2 keyboard, there was no way for me to plug in another keyboard I had. I was gutted.
I tried different cables, tested continuity, plugged and replugged. No change.
Then I came across the manual and this thread which claimed that phone cable was not the same as the coiled Kaypro keyboard cable. The main difference was the thickness of the cable and the “impedance” – I found this hard to believe with such a short length of cable. Then one suggestion came by – the cable was straight-through rather than “roll-over”.
Looking at Chapter 13 of the technical manual, I can see they assigned the pin numbers so that reversal of the order would not lead to a short, or damage. I knew the keyboard wasn’t useful in its present state, so I grabbed my soldering iron to reverse the cable order –
I know, I didn’t need as much vero board as I needed, but I was thinking ahead, in the case I need to insert an inverter chip and probe the lines. I gingerly plugged it in, only to find the keyboard caps lock light did not come on, and there was no beeps either. It still didn’t work! So, I decide to open it up just to see if there’s any socketed ICs that need a bit of re-seating …
… but there wasn’t any. It was all soldered down. Look at those traces, lovely patterns, but I really wanted to get it working.
Then I decided to try and work out how the keyboard interface worked. To my surprise, when I saw this page using the TRS-80 as a keyboard for the Kaypro – I knew it wasn’t a problem for me. It was simple – it was RS-232 serial at TTL level – 5v at 300 baud! All I would need is my trusty FTDI Basic and a set of header pins and jumper wires to make the connection. Pin #2 would be transmit data, Pin #3 is the ground. Add netbook and Hyperterminal, and we’ll see what’s what. With any luck it wouldn’t be something wrong with the Kaypro’s motherboard, like this guy had.
Plug it in, turn it on, and hope for the best, YES! It works!
Copying the Master Disk
The first challenge was to copy the master disk. I issued the COPY command at the CP/M prompt – it should be as simple as following the prompts, right?
Press C for copy …
… and then Return …
It starts copying track-by-track, alternating drives. And at this point, we are screwed. Bad sectors – the worst nightmare of any floppy user. It gets worse though, after a reboot …
Is the master disk dead? Was that all it had left? Not quite, but it was pretty knackered.
After reseating the disk, we got a boot – and re-invoking copy over and over got us more and more tracks copied, but it still kept getting stuck. I discovered by choosing O (for other) then C (for copy), it would try to copy with errors included – it wasn’t a pretty sight:
We’re running on borrowed time – the disk isn’t hanging in, and the computer could give way at any time. The drives themselves probably didn’t have much left in them. I had to think of a better way.
Getting disks another way
Luckily, retro-computing was sort of a “thing”, and some people were very good about documenting and providing disks. For example – this site provided Teledisk images for many Kaypros, and this site provided the tools (Teledisk, Imagedisk) and other images too.
So download the images, and use a DOS computer to write them out. Simple isn’t it? Except for the fact it wasn’t.
Firstly – I downloaded an image for Kaypro 4 from the first link, and got Teledisk to write it out. (Teledisk is unsupported shareware, and should not be used nor distributed as it violates the license.) It wrote a disk, which hung when booting on my Kaypro 4. The reason? The disk was for the Kaypro 4 (1984) which was 4Mhz, not the Kaypro 4 (1983) which was 2.5Mhz (and based more on the Kaypro II).
Then I got the Kaypro 4 images from the second link, which were in Imagedisk format, got Imagedisk and tried it on the DOS machine of mine. Some care had to be used – Double Stepping ON, 250kbit/s -> 300kbit/s translation (due to using a DSHD 5.25″ drive). Still, I had problems – the Kaypro disk images had 41 tracks, and there is a 128 byte sector on the 41st track that the Winbond controller on my computer could not write (non-PC format).
When the drive was configured with 80 tracks (as you would expect), Imagedisk incorrectly stepped and overran the disk boundary at tracks 35 or so. I changed it to 82 tracks, and then it stepped correctly, however, any disk written with Imagedisk couldn’t boot on the Kaypro.
Unfortunately, as Teledisk images are proprietary in format, people were more interested in translating Teledisk to Imagedisk and not the other way around. Teledisk itself could write images that would read on the Kaypro – and would have been a solution. So no dice on the downloads :(.
But there was something I could do – take a Teledisk backup of the disks using the PC instead of the Kaypro. And so I did, with many many errors on the CP/M and Wordstar disks. And I wrote a set of backups, with errors included – damaged sets are better than no sets, but some of them didn’t read reliably on the Kaypro.
Disk drives are problematic – DSHD drives use thinner tracks. The written disks from my DOS computer are thin, resulting in background data bleeding through. Degaussing the disks using hard disk magnets helped, but read reliability still wasn’t a strong point.
A hybrid approach
Seeing that the images from the internet didn’t help too much, it was time to take a hybrid approach. The first problem is to deal with the CP/M disk – without it, the system is pretty much a boat anchor.
The issues with booting and the degrading behaviour was likely due to dirty disk heads – so step 1 is to clean them. In comes a makeshift cleaning disk made from a defective disk which has had its donut removed. In place, I put a low-lint paper tissue and put some isopropyl alcohol on it. The jacket was cut slightly short, so that it could be inserted into the drive, door closed, and disk wiggled to “rub” the heads gently while it’s powered off.
I cleaned both drives first, and then I took a look at the disks. We really are on borrowed time – the CP/M diskette lost quite a bit of oxide in places – that’s data that could never be recovered.
Worse than that, I discovered the reason why disks would sometimes read and otherwise wouldn’t – looks like the drive spindle is pretty harsh on these master disks which don’t have hub rings – and had “pinched” or grabbed the disk off-centre, causing wobbling tracks and read errors. These damaged holes are also pretty permanent, so I take much more care to pre-centre the holes and lower the drive door slowly …
At least, now the master disk has booted, and I can list the root directory. A good start.
So, I know a direct copy isn’t going to work well or easily – but I also had a hunch the disk itself isn’t full. So first, I will prepare a blank formatted CP/M booting floppy using the COPY command’s BLANK option:
So we have a formatted bootable floppy – but there’s no utilities on it (the valuable stuff) – so we should copy it from the master disk. For this, we use the PIP command (I would have guessed COPY, but that was taken with the program above, or CP). These utilities “take over the system” completely, and upon exit, causes a “Warm Boot” of CP/M from disk. Because they are resident in memory completely, this allows you to change disks for the copy. Anyway – so lets copy everything from A: to B: using the command B:=A:*.*[OV].
This isn’t actually the master disk, this is a copy of it but even the copy seems to have developed a bad sector (more on this in a sec). PIP continues a copy as long as the bad sector is acknowledged, and several attempts later, I had copied everything except LOAD.COM and BASICLIB.REL.
So, we’re out of the woods right? Almost! Unfortunately, it seemed that drive B was very sensitive to media – many of the copies written lasted mere hours before starting to show errors in the Tandon drives. I suspect this maybe because it may be writing disks with reduced write current. To get around this, I wrote *many* (at least 8) copies in the hope that one or two would be in a good condition. After every write, I swapped source and destination disks and did a disk to disk verify to ensure cross-drive readability (in the case of alignment issue) and I backed it up on my PC using Teledisk (and wrote copies on its properly functioning 5.25″ drive, with the caveat on track widths).
For the other supplied-software disks, I did copy using disk-to-disk methods, which generally worked fairly well, with only a few lost sectors on the Wordstar disk. From now on, the only disks I’ll be using are the copies.
A very popular word processor in its time, unfortunately due to sector errors on the copy, the program isn’t fully functional.
With no F-keys on the keyboard, everything is controlled with cryptic key combinations and letter commands. Emacs users should be comfortable with something like this … Everything is text mode as well, with no real text-mode graphics as such, mainly ASCII art.
Booting from any of the Perfect Suite disks gives you this warning. Then it halts the machine. The funny thing? This disk was a copy of the original. Instead, I booted the CP/M master (remade) and then started the program from B: with it. Normally A: contains the program disk (and is ROM marked to be read-only) with the data stored in B:.
And Perfect Calc itself, it was a spreadsheet –
It asks for the disk drive containing database – I put in B, but it seems to be insistent on A, and so I couldn’t get anything loaded and running, but interestingly – it reminds me that this thing doesn’t have a properly working RTC:
The main database menu, but then, I can’t get anywhere …
It insists on looking at A:
Same sorta steps – this time, for novelty, I typed some of my blog post in Perfect Writer just for the fun of it. It’s the first time I really noticed just how slow the Z80 is – it actually lagged when processing my keystrokes, and typing fast enough could result in keyboard buffer overflow (4 characters only if I remember correctly).
MicroPlan is something that looks like an accountant’s ledger. Also on the disk is CBasic Compiler V2.08 and CRun V2.08 and V2.38 from Compiler Systems Inc, 1981.
Microsoft Basic 80
This disk was for the BASIC programming language. Initially, I thought it was QBasic (because that’s what I used in DOS), but it was Obasic! There’s also Mbasic and a few sample games (compiled) and BASIC programs (BAS files). These two versions are probably different version of the BASIC language – it’s clear that they leave different amounts of RAM free after the interpreter is loaded.
The first sample game is Aliens – a Space Invader text clone. There is an initial screen, likely to seed some random number generator or something …
The obligatory tutorial screen and then it’s the game …
Another demo provided is CatChum – a PacMan clone. Interestingly, this game demonstrates the “slowness” of the machine – the main game field takes several *seconds* to draw! (There was also ladders, but due to a disk error, I didn’t manage to get that one to load – but I think you get the drift, it’s all monochrome and text-based. One thing that is missing is the beeper – which was in the original keyboard, but I never bothered to hook up to anything, so the computer was pretty much “silent” for me.)
So there’s a good overview of the included software with the Kaypro. Of course, there were heaps more pieces of software available, especially via FTP and BBSes – it still is. Unfortunately, I don’t have the time to go through them all – nor do I think it’s necessary given the “borrowed time” nature of this machine. Every hour with this machine is one worth cherishing, because it might never come back to life – a CRT failure or PSU failure could mean curtains for it.
Odds and Ends and Conclusion
Interestingly, the Kaypro features a Centronics parallel port rather than the PC common standard of DB-25F. Therefore, to hook this up to a parallel port printer – you need a Centronics 36 to Centronics 36 cable – like so:
Also included in the bundle was a pristine box of 10 5.25″ DSDD disks – Xidex, still in wrapping! Look at that price! I can’t bring myself to unwrap this one – luckily I have a stack of “unboxed” old used 5.25″s I am using …
Over the past day and a half, I’ve searched high and low and learnt many things about old CP/M systems than I would have ever had. I stressed myself out, deprived myself of sleep and thought a lot about how to get things working. It was all worth it. I managed to experience something from 30 years back! It was amazing to see it all worked, without much work (compared to a full restoration). This was a cool experience, to see what was possible back then – although it’s not really a practical system for all intents and it’s a bit “fragile”. I treasure it, so I’ll use its remaining hours (about 6 hours powered on in my possession so far) to demonstrate it.
But one thing’s for sure – at least this website will commemorate it even after it dies.
[Apologies for the camera skew and distortion – part of that was the lens, part of that was the screen!]