View Full Version : KAYPRO and FreHD as hard disk????

Frank S
October 30th, 2013, 03:58 AM
I own two KAYPROs 4/84 and a FreHD module.
The KAYPRO uses the WD1002 controller (similar to the WD1000-TB1 in the TRS-80) as the TRS-80 for hard disk access.
So my question is, if the KAYPRO is getting to work with the FreHD module.
I am not so deep in the KAYPROs and have no documentation about KAYPRO hard disks/controller.


October 30th, 2013, 05:41 AM
I would LOVE to be able to use my FreHD with my Kaypro machines. I've got a 4/84 and a 10, both in excellent shape. Unfortunately, the 10 has a hard disk that steadily accumulates bad sectors. :(


October 30th, 2013, 07:23 AM
I have a Kaypro 2, currently experiencing floppy drive problems.

I, too, would love to be able to use something like the FreHD with this machine.

If you are trying to accumulate interest in a new project, please count me in as someone who is interested.


Frank S
October 30th, 2013, 07:54 AM
I have a Kaypro 2, currently experiencing floppy drive problems.
I, too, would love to be able to use something like the FreHD with this machine...
For the KAYPRO 4/84 and 10 the physical connector for the HDD-controller is already there.
For older KAYPRO 4 and II/83 there is no connector already(as i know).
The connection is to make by a socket adapter from the Z80 socket.
However, there must be an KAYPRO host interface 81-212A (http://www.kenseglerdesigns.com/cms/node/19) between the bus-connector J9 and the WD1002.

Add a Hard Disk to a Kaypro "84" Floppy Computer

The recent computer slump has resulted in massive parts dumping on the
part of the computer manufactures to the surplus market. I am sure that
you have seen all the ads in the papers hawking IBM ten megabyte drives
for less than $500. Let me tell you how you can add a hard disk to your

All of the "84" series computers come with the larger power supply and
the necessary power wiring for two drives and the hard disk controller.
To convert to a K10 simply involves unplugging the lower drive, adding
the controller and host interface boards, and plugging in some new

The following is a list of the needed parts:

The hard disk itself
Shugart 712
Seagate 224

The hard disk controller
Western Digital 1002-HDO or 1002-05

Kaypro Host Interface 81-212A ( must be "A")

System ROM
Kaypro 81-302C
Advent 84 Turborom

Kaypro K10 F, G, or H System disk
Advent Turborom software is supplied with its ROM

Interconnect cables
Dual 50 pin IDC ribbon cable (computer to host)
Dual 40 pin IDC ribbon cable (host to controller)
34 pin IDC to 34 pin edge ribbon (controller to disk)
20 pin IDC to 20 pin edge ribbon (controller to disk)

8 4-40 1/2 in spacers
4 4-40 1/4 in flat head screws
12 4-40 1/4 1n binder head screws
8 #4 nylon or fiber washers

The hard disk is available from many sources. In the December Byte
Advanced Computer Products is selling the Shugart for $229 with a one
year warranty.

The Western Digital controller is also a standard part. Its list is
$295. Xerox surplus outlet has them for $75 as is (the five I have
purchased have all worked), S100 is supposed to have them new for $200,
and ERAC has them used with warranty for $200.

The host interface card is a Kaypro part. Your Kaypro dealer can order
it for you for around $30 or you can get it from ERAC for $5.

The cables are all standard parts. Most of the connectors cost 5 to 6
dollars each and 50 conductor ribbon cable is about a buck a foot. ERAC
has the stock kaypro cables for around $3 each, but they are too short.
You can reuse most of the connectors if you are careful and use them to
help build up to ERAC's $25 minimum order. Their ad states that they
have 81 series ROMs, so they might have the 81-302c in stock.

Now for the construction. I despise overly detailed instructions, so I
am only going to describe the work in general. If you need more
specific hand holding, most user groups have at least one technical type
that can help.

Remove the main board, the floppies, and the floppy cage.

Mount the host interface card on four spacers on the floor of the
computer in the area normally covered by the cage. Mount it with the 50
pin connector facing the rear.

Mount the controller card on the left side of cage. Be sure to mount it
low enough to miss hitting the main board. I only used three spacers as
the lower front one would be a real bitch to get a screw into.
Countersink the holes and use the flathead screws so that they don't
interfere with the drives.

Temporarily set the cage back in place and make up the host cables. The
forty pin connector goes to the forty pin connector on the controller.
The fifty pin connector goes to the fifty pin connector on the main
board next to the 34 pin floppy connector. Leave enough slack in the
cables so that they can be adjusted to not block the air flow from the

Remove the controller and mount the cage. Mount the hard disk on the
bottom and the floppy on the top. Both drives should have terminators
and be strapped for the lowest drive number, on some drives that is 0
and on some it is 1.

Mount the controller card using the insulators so that none of the foil
tracks on the top or bottom are shorted.

Make up the drive cables. The 34 pin cable goes to the 34 pin connector
on the controller next to the power plug. The 20 pin cable goes to the
center of the three clustered 20 pin connectors J2.

Remount the main board and plug in all of its cables. Plug in all the
power cables. The controller gets the one with only a white and black
wire. Plug the floppy cable back in using either of the edge

Change the ROM. If you are using the Kaypro ROM it will be shorter and
goes all the way to the rear of the socket.

The rest of this assumes that you are using the stock Kaypro ROM and
software. For the Advent Turborom refer to its instructions. To use
the Turborom, you must purchase their Hard Disk Formatter also.

Power up the computer with the system disk in the floppy. It should
come up with Kaypro 10 1.9E message and then boot from the floppy

After at least warming up for half an hour we can now format the hard
disk. Run Format and tell it that your drive is 1,1 head 0,3 cylinders
0,305. It takes about 45 minutes.

Now run Findbad B: and Findbad C: to lock out any bad blocks. Run
Putsys and Putovl to write the system to the hard disk and you are done.
Open the floppy door, push reset and it should boot from the hard disk.

One of the nice things about Kaypro is the extensive public domain
support. John Smith has supplied a turnkey ZCPR3 system that will run
on your new machine by simply running a new set of put files. Most
kaypro user groups have it and it is on the major boards. I recommend
it highly. It would be a hardship to go back to the stock CP/M system.
It makes a hard disk even nicer.

I have modified several machines with no problems. Since the entire job
involves only board swapping, with a little care you should have none

Glenn Drayer
15200 Magnolia #19
Westminster, Ca 92683

...ONKUG, Newsdiskette to Kaypro Users Groups, Volume 2, Number 2.

Frank S
October 30th, 2013, 11:38 PM
I doesn't find a service manual for the TRS-80 pimary Hard drive enclosures (except the 5/8MB version) in the web.
Has anyone of you a later (15MB and up with WD1000-TB1 or WD1002 controller) service manual or schematic?

November 1st, 2013, 02:17 PM
Interesting topic. It is something I have been considering for the Kaypro 4 that I have here. Now that we have the FreHD running on the Model 4, 3, 1 and System 80/Video (aka Video Genie) it is a project I hope to give a little time to.

That doesn't mean anything will happen fast though.

As I see it there are two things required for this to work.

Hardware compatibility is the first. While the machines use similar WD controllers the IO Port mapping for the TRS-80 is different to the Kaypro as shown in the table below.

Kaypro TRS-80

0x80 Data 0xC8
0x81 Error 0xC9
0x82 Sector Count 0xCA
0x83 Sector Number 0xCB
0x84 Cylinder Low 0xCC
0x85 Cylinder High 0xCD
0x86 SDH 0xCE
0x87 Status/Command 0xCF

This means it is not just a case of hooking the the Kaypro address, data and IO control lines to the equivilent FreHD pins (which are all there) and expecting it to work.

The FreHD address decoding is a combination of the 16V8 GAL and the PIC microcontroller.

While these could be modified to produce a Kaypro version with appropriate port mapping, with the FreHD development ongoing, forking the project isn't a great idea as the versions will quickly get out of step. Trying to keep compatibility in the same source increases the test burden.

I think a better idea is to use a GAL between the Kaypro bus and the FreHD to translate Kaypro addresses to TRS-80 addresses. As far as the FreHD is concerned it is connected to a TRS-80 so the stock PIC firmware and GAL can be used.

From the hardware side a GAL, 74LS245 buffer and some wiring should be all that is required and would be fairly easy to build and validate that the basic hardware interface works. (i.e use MSBasic and INP() and OUT() commands).

Where I start to get lost is on the software side, not being familiar with the many Kaypro ROM + CP/M combinations and how the Kaypro CP/M BIOS does (or does not) use ROM routines for IO.

There are custom ROMS such as Advent and KayPlus which say they include "hard disk support" but I have no idea what that means. I am also not sure if they are actually compatible with the Kaypro 4 I have (uses the 81-232 ROM).

Even without ROM changes, theoretically a custom CP/M bios could be created to add hard disk support with no requirement for a ROM change assuming that the machine will boot from disk and a little memory can be given up for the IO routines. Even this requires a fair amount of knowledge/disassembly of the existing BIOS so it can be patched.

Having been through the TRS-80 process with Fred, one of the best tools we had for testing was an open source TRS-80 emulator (xtrs in our case) that included an integrated Z80 debugger. The only Kaypro emulator I have seen is Mess and haven't even started to how complete the emulation is.


November 1st, 2013, 03:56 PM
Not knowing anything about Kaypros...

I would think modifying the driver would be far easier than ANYTHING mechanical...

November 1st, 2013, 04:58 PM
We are a bit spoiled with the TRS-80 and it's expansion connector... particularly the Model 3 and 4.

Some Kaypro models (and particularly the early 2 and my 4) don't even have internal expansion connectors on the board let alone an external one. To connect a FreHD to mine I need to add a shim to the Z80 socket to pick of the signals similar to the GIDE interface. If I am going to do that then I also need to add buffering on the signal lines so I may as well add a GAL to remap the addresses to make them Kaypro standard.

The later Kaypro models that were designed once hard disks became more common do, I believe have an internal connector for the hard disk controller. It may be easier with these machines to just do a software fix but it sounds like that requires changes to both the ROM and possibly the CP/M BIOS.


Frank S
November 2nd, 2013, 04:22 AM
Hello JAQ,
there is no need for an external address translation (GAL).
On the FreHD is already a GAL which is used for address decoding.
All what is needed for the KAYPRO address decoding, is a different programmed GAL on FreHD.
Between the KAYPRO and the FreHD there is the need of an simple adapter board, with eventually one or two TTL-IC (KAYPRO 4/84 and above).
As you write, the older KAYPROS need a Z80 piggy back adapter. Which mainboards have/not have the bus adapter, we have to investigate.
In the next days i draw a adapter board (if i find time).

November 2nd, 2013, 09:44 AM
Yes it is true that the GAL does address decoding but mostly this is at the level of "is the address selected 0xC?" to control the PIC selection line and some special handling for the status register.

The PIC also uses the lower 4 bits of the address A3..A0 to determine what hard disk control register is to be accessed.

On the TRS-80 these are 8..F and on the KayPro they are 0..7.

If you modified the standard GAL you could probably pull the PIC A3 line high to move 0..7 to 8..F but you then lose access to the FreHD "special" registers which are in the 0xC0 - 0xC7 range.

These are the registers that do all the cool stuff such as version reporting, upgrading the firmware, real time clock, mounting new volumes, reading files directly from the SD Card.

If you have a 16V8 programmer I would try something like this (untested). It should move 0x8? to 0xC? and pass everything else unchanged.

Name FreHDKay ;
PartNo 00 ;
Date 11/3/2013 ;
Revision 01 ;
Designer Engineer ;
Company Andrew Quinn ;
Assembly None ;
Location ;
Device g16v8 ;

/* *************** INPUT PINS *********************/
PIN [1..8] = [A0..7];

/* *************** OUTPUT PINS *********************/
PIN 11 = SPARE2;
PIN [12..19] = [FA0..7];

/* *************** LOGIC ********************/
/* Translate 0x80..0x87 to 0xC8..0xCF */
/* Everything else passed through with no change */

HDSEL = (A7 & !A6 & !A5 & !A4);

FA7 = A7;
FA6 = (HDSEL) # (!HDSEL & A6);
FA5 = (HDSEL & (A5 & !A5)) # (!HDSEL & A5);
FA4 = (HDSEL & (A4 & !A4)) # (!HDSEL & A4);

/* Shift low 4 bits up if Kaypro wants 0x8? */

FA3 = (HDSEL) # (!HDSEL & A3);
FA2 = A2;
FA1 = A1;
FA0 = A0;



Frank S
November 2nd, 2013, 10:14 AM
Hello Andrew,
i think the "version reporting, upgrading the firmware, real time clock, mounting new volumes, reading files directly from the SD Card" feature are not in the foreground at now.
My first draw of the schematic is attached, please review it.

November 2nd, 2013, 10:43 AM
Can the lo-tech TRS-80 IDE Adapter (http://www.lo-tech.co.uk/wiki/Trs-80-ide) be re-purposed? If the required changes are just a few inverters, the design could easily be modified to have a jumper to select the target host type.

Frank S
November 2nd, 2013, 10:46 AM
Can the lo-tech TRS-80 IDE Adapter (http://www.lo-tech.co.uk/wiki/Trs-80-ide) be re-purposed? If the required changes are just a few inverters, the design could easily be modified to have a jumper to select the target host type.
I think, that is not practical.
The Lo-Tech adapter has a different physical connection and different needs for the software interface.

November 2nd, 2013, 11:59 AM
That looks reasonable. I had a quick look at the Kaypro tech manual and couldn't find a schematic that confirmed it but assume that your Kaypro 4 has the internal connector for the hard disk controller and this is buffered?

The reason for asking is lots of FreHD's (mine anyway as they are external) are connected with fairly long cables. We had some challenges with Video Genie / System 80 particularly where extra buffering and terminating resistors were required on the signal lines to the FreHD. This may be unique to the Expansion Interface on those machines but when I try this with my Kaypro IV (the '83 version) and need to add a shim to the Z80 socket I will definitely need to add some buffering.

So you going are going to change the standard FreHD GAL for 0x8? addressing and tie A3 high on the PIC?


Frank S
November 3rd, 2013, 03:18 AM
Attached is the schematic of the bus-connector (J9) from the 4/84.
Also i include a GAL for potential changes to the adapter board.

Frank S
November 3rd, 2013, 03:55 AM
Here (http://www.vintage-computer.com/vcforum/showthread.php?9076-Kaypro-with-a-quot-Z80-WINIF-ADAPTER-quot) are some pictures of HDD adapters for older KAYPROs.

November 3rd, 2013, 03:07 PM
Thanks Frank. Also for the pointers to the photos of the adaptors. That was what I was thinking I would need to build for mine.

Schematic looks OK. You can either use the GAL for address translation or put in jumpers which is nice. Do you have the tools to compile the CUPL for the address translation or would you like me to send you a compiled file suitable for programming?

Looking at the Kaypro schematic I think you need to connect /EXTIOSEL from the FreHD to J9-46 on the Kaypro. This controls the direction of the 74LS245 buffer on the Kaypro data bus. /EXTIOSEL goes low when the FreHD puts data on the bus in response to a /RD, /IORQ and the correct address range. Without connecting this you won't be able to read anything back from the FreHD.

When you have the FreHD connected a good first test step is to use the basic INP and OUT commands to check the interface is working. Are you familiar with what to expect? If not I can dig though my TRS-80 testing emails for some examples.