View Full Version : SD card reader for Kaypro?

January 20th, 2010, 07:36 AM
Has anybody made (or attempted to make) an SD card reader for Kaypro portables? After all the hassles of trying to get software on floppy for my Kaypros, I would love to be able to just load up an SD card and plug it in. There's a motherlode of CP/M software out there and it's frustrating as hell not to be able to play with any of it.

There are SD card readers for plenty of other 8-bit computers, such as Apple II, Atari 8-bit, C64/128 (Vic20?), CoCo 2/3, TRS-80 Model 100/102/200. Why no Kaypro? :tantrum:

January 20th, 2010, 08:34 AM
Hi! I recall Sharkonwheels trying to get a KayPro GIDE project going a couple of years ago. Nothing came of it AFAIK. Certainly GIDE or something like XTIDE using a Z80 shim PCB would be possible. Then you could use IDE, CF, or those CF to SD adapters.

The KayPro's lack of a proper expansion bus hampers this somewhat but nothing that could not be overcome with a little finesse. IMO, there is nothing technically preventing this project from happening. Only a lack of will required to lead, organize, and manage it into reality. Those skills can be hard to come by though.

If you wait for someone else to do it then it will never get done. I wish you the best of luck with your project. Thanks and have a nice day!

Andrew Lynch

January 20th, 2010, 08:52 AM
Yes, given the popularity of the Kaypro systems, and the popularity of CP/M amongst older hard-core techies I had wondered this myself. I guess Andrew has answered the question. These things need a champion or a team of people to drive them forward. The planets haven't aligned to make that happen yet.


January 20th, 2010, 09:02 AM
There's a motherlode of CP/M software out there and it's frustrating as hell not to be able to play with any of it.
You can write Kaypro floppies on a peecee with a 360K drive and software like 22DISK (http://www.google.com/search?q=22dsk140.zip).
Sure it takes time, but most things do.
I usually use an emulator like MYZ80 (http://www.z80.de/myz80.zip) to try stuff out before deciding to write an actual floppy.


January 20th, 2010, 09:04 AM
These things need a champion or a team of people to drive them forward. The planets haven't aligned to make that happen yet.

I'm willing to be "Executive Manager" and say meaningful manager-like (bullshit) things such as, "Hey guys, can we get moving a bit faster?" (...thereby increasing productivity...), but unfortunately I don't have any actual PCB design experience.

My experience is mostly theoretical. (...meaning: "made up")

January 20th, 2010, 10:02 AM
Hi! You don't need any experience just the curiousity to start building some circuits. Try getting a breadboard and make a Z80 circuit with wires. A simple one like this one for starters:


You'll be building IDE adapters in no time. The circuit above could be adapted to an IDE interface by only adding inverters to a few of the 8255 pins using a 7404 IC. Since the KayPro supplies the CPU, RAM, ROM, and UART already its just a matter of adapting the software. There are many examples of 8255 to IDE interfaces with software on the internet.

Seriously, you can do this. Anybody can. Jump in and have some fun!

Thanks and have a nice day!

Andrew Lynch

January 20th, 2010, 12:18 PM
There are also ready-made SD to RS-232 lashups (http://www.compsys1.com/workbench/On_top_of_the_Bench/MMC_Project/mmc_project.html) Since your Kaypro has a serial port, that might be an easy answer.

January 21st, 2010, 12:49 PM
There are SD card readers for plenty of other 8-bit computers, such as Apple II, Atari 8-bit, C64/128 (Vic20?), CoCo 2/3, TRS-80 Model 100/102/200.

Yes, I have a SD reader for the TRS-80 Model 100 - the NADSBox (http://www.kenpettit.com/nadsbox.html) What stands this reader apart from the others is that it is RS-232 based and will have XMODEM facility. This should be a solution for CP/M machines with RS-232 (have to be nearly all CP/M machines - surely)

Current price is $US 195 and currently only available from Club100. (http://www.club100.org/)

I'm sure Ken will announce to the CP/M community when it's ready.


January 22nd, 2010, 04:31 PM
I already planned on getting a TRS-80 Model 100 (lost the damn auction, though) and I was going to get a NADSbox. It'd be great if I could also use it for my Kaypros!

January 22nd, 2010, 07:51 PM
Why are you having problems using diskettes?

January 22nd, 2010, 08:18 PM
Why are you having problems using diskettes?

I already mentioned it in three different threads. No matter what I do, I can't create Kaypro disks from images using my Compaq Portable III. I attempted many times. It just doesn't work. I have no other way to create disks.

January 23rd, 2010, 05:32 AM
Hi! If someone takes the lead I am willing to help out on it like with the XTIDE project. Initially Hargle led XTIDE and did the "heavy lifting" of all the organizing, software, project management, etc. Since then several others have joined and done wonderful work. IMO, whatever the technical solution you come up with it usually can be done without too much effort. However, my plate is full with N8VEM development and can't reasonably take on another project. I find its the PM and SW effort that is burdensome and its where Hargle excels. The HW is rather easy if you can keep the rest of the project at arms length. Ask Hargle for his opinion I am sure he can elaborate with an experienced perspective.

My suggestion for a purely technical solution is to take the XTIDE circuit remove the boot ROM and convert it to a Z80 shim PCB. Yeah, that's nasty and has all kinds of issues but I think it would work. An alternative would be to convert the PropIO board to a shim PCB and use its Propeller for VGA, PS/2 keyboard, and uSD. You could also convert the N8VEM SBC RTC circuit (74LS574 & 74LS125) to have 3.3v interface (pull up resistor, series resistor, 3.3v Zener diode) and hook it directly to a SD card but that would be fairly major software development. Fortunately the code exists (Juha's work on the N8VEM SBC SD interface) but it would still be a big project.

I guess my point is, to the extent I have one, that technical solutions abound but the most important ingredient is the will to make it happen. If the will exists we can make it work and if not this project will either never launch or flounder aimlessly.

That's my $0.02. I hope it helps. Thanks and have a nice day!

Andrew Lynch

January 24th, 2010, 05:54 PM
SD cards are so nifty. I see them as little tiny floppy disks except that they have gigabytes on them. The micro sd cards are so tiny you sneeze and they can disappear.

So -there are some huge advantages to getting them working as an add-on for old computers.

The problem is the interface. There are not many examples of working code out there, and if you do have working code, it isn't quite what you need. At the bitbang level, sd card code is complicated.

There are three other approaches that might be worth pursuing. One could be to join Andrew Lynch's group (N8VEM) and then you will have access to all the files and in one of those files are the five Z80 assembly programs I wrote to talk to the uDrive http://www.4dsystems.com.au/prod.php?id=22 $29

This enables you to read and write files to and from the sd card via a serial port (tested to 38k baud, but ought to work up to 115k). It would just need some tweaking in the source code to change the port locations.

Another option is to look at other CP/M boards that have SD card access. I'm working on a propeller emulation http://www.smarthome.viviti.com/propeller and this board uses an sd card with eight 8mb disk drive images that use the Altair SIMH format. This board also has xmodem, and it is easy to xmodem files back and forth between other CP/M boards, either with wires or wireless. So this could be a solution if you have xmodem on the Kaypro, as then you don't need to do any coding.

Though if you have xmodem on the kaypro, you can also transfer files directly froma PC. And if it is tedious sending them one at a time, you can set up batch file transfer (code also at the N8VEM group).

As for reading the sd card directly with Z80 code, as far as I know only Juha at the N8VEM group has managed to do that, but he has disappeared and while his code is still there, I'm not sure anyone quite understands it. You would need 4 generic I/O lines (eg from an 8255) at 3V logic levels and i'm not sure if that would be all that easy to do. RS232 would be a lot easier.

January 24th, 2010, 07:09 PM
Replacing the disk drives on the Atari, Commodore and Radio Shack Mxxx computers is a lot easier because they use a serial protocol to talk to the drives.

Still seems like it'd be easier (and happen sooner) to go with what you've got, at least for now.

I scrapped my Portable III or I'd try it myself; IIRC that's an HD drive which does increase the odds against...

Have you tried transferring files or images via a serial port, and if yes, why didn't it work?

January 24th, 2010, 09:28 PM
There are tons of uC kits and circuits on the web that have a simple microcontroller and SD chip. Since the source code is usually included, you can modify it to produce whatever output you'd like. Such a circuit is far simpler than a CF card interface.

The bigger problem is dealing with the VFAT filesystem on larger SD cards. And you'd better plan on it, as small SD cards won't be around too much longer.

March 1st, 2010, 05:38 AM
Hi! Would anyone be interested in making an adapter to use an N8VEM PropIO board in a KayPro? I am thinking this would not be a difficult project. Basically it would be a CPU shim socket. You would remove the CPU from the KayPro motherboard and plug it into the shim socket which would then be inserted into the KayPro Z80 CPU socket. For software use the existing CBIOS code for the N8VEM PropIO.

The shim socket PCB would export the Z80's 40 pins to a dual row header. The PropIO would be built as per normal except a 40 pin ribbon cable connected to where the ECB bus DIN 41612 male right angle socket would normally go. The modified PropIO would plug into the shim socket board. The PropIO board would be ideal for this since it already includes mounting holes to attach to the KayPro or other vintage computers case and not need any additional power cables.

I am thinking if the ribbon cable were kept short then no additional buffers would be needed. There are already bus buffers/transceivers on the PropIO.

Due to time and other projects already in work this is not really on my task list but if there were any hardware hackers willing to do some prototyping this might be a useful project. At a minimum I can see adding microSD to the KayPro or other Z80 based microcomputer. With the PropIO it would also add PS/2 keyboard and VGA interface which might be helpful in resurrecting a broken unit without working video or keyboard.

At least in theory this should work for the PropIO but may be general enough in nature to allow usage of any of the N8VEM ECB boards such as DiskIO or VDU.

Please consider. Thanks and have a nice day!

Andrew Lynch

March 4th, 2010, 07:55 AM
Doesn't the 2x have a depopulated expansion connector on the motherboard? I can't recall for certain, but it seems like I saw one on the 2x I have when I popped it open.

March 4th, 2010, 08:19 AM
Okay, I'm not completely crazy after all. :)

Checked the 2X schematic, and there's a connector, J9, which has all of the Z80 bus connections on it... looks like they intended it for a hard disk controller, since it's got a signal labeled !HD_CTRL_RST.

March 4th, 2010, 10:08 AM
Hi! Thanks! What I am thinking of doing with the N8VEM PropIO is to make a general purpose Z80 peripheral not something specific to the KayPro. The shim socket approach would allow anyone with a socketed DIP 40 Z80 CPU to add the PropIO board and with some software support and have keyboard, video, and uSD storage. There is a builder on the N8VEM mailing list who has expressed some interest on prototyping with his KayPro so that sounds like a good starting point.

I am thinking of building my own proof of concept prototype and adding it to a recently completed S-100 keyboard interface. Since it uses a Z80CPU for controlling the PS/2 keyboard to parallel ASCII conversion, it would be a neat test bed for this idea. Obviously the PS/2 keyboard would be rather redundant and adding a video interface/storage to a keyboard converter isn't terribly useful either but it would tell me if the basic concept is sound. If it works there then it should work on any Z80 (DIP 40) computer regardless of manufacturer.

The Z80 host computer would see the PropIO similar to a UART interface so it is very simple to implement. The PropIO CBIOS code looks a lot like a plain serial interface for CONOUT, CONIN, and CONST. Each platform would have to have its own software probably in the form of a ROM or CP/M application to access the PropIO hardware. I think this would be very helpful to people with broken "integrated" Z80 systems like KayPro since you could then use the PropIO to temporarily replace the broken keyboard, display, storage or whatever.

Thanks and have a nice day!

Andrew Lynch

March 4th, 2010, 10:14 AM
Yeah, I like the idea of the shim approach too. I figured for prototyping the expansion connector might be a little easier to work with. As long as you have a user defineable IO port base address, it seems like you should be able to use it on any Z80 type computer. With the appropriate software of course.

I imagine the hard part in getting a CP/M solution would be a custom BIOS with hard disk support. I've tinkered with the idea of writing my own CP/M 3.0+ BIOS for the Coleco ADAM in the past, but seems like it'd be a lot of work. ;)

March 4th, 2010, 06:33 PM
Hi! Well, in this case it would be fairly simple since there would be CBIOS source code examples available on the N8VEM wiki. There is already a CP/M with CBIOS source listing for the PropIO posted. If the shim socket approach works then there is no reason I can think of that it would not work for the DiskIO (FDC & IDE) board either. There is published CBIOS source code for that as well.

Why this idea of the shim socket to ECB didn't occur to me earlier is a mystery but it may allow all sorts of Z80 based computers to use N8VEM peripherals. However, as you said, they would require software to be written for them. Some peripherals support changing the IO address and some don't. PropIO allows for changing the IO address but DiskIO is fixed.

Thanks and have a nice day!

Andrew Lynch

March 9th, 2010, 02:59 AM
Hi! A quick update on this sideline project. I have been busy working on the S100Computers.com and N8VEM S-100 boards and also the N8VEM SCG sound and color graphics board. However I did get a chance to design a simple PropIO shim socket schematic and PCB layout. It is very simple so it did not take long to do.

One of the N8VEM builders has a prototype PropIO shim socket and installed it on his KayPro. The good news is the KayPro boots and operates as it did before. The preliminary testing is positive since the builder is able to access the PropIO status port using the KayPro. He is in the process of writing a small test program to echo keyboard input on the VGA display. If the test is successful and we can establish reliable KayPro to/from PropIO communication. Then it is just a matter of writing the software so the KayPro can access the PS/2 keyboard, VGA, and microSD on the PropIO.

The test may not seem like much but if it works it establishes proof of concept of using a PropIO directly interfaced to a Z80 CPU. With some research and testing I think this could be extended to nearly any Z80 (socketed DIP 40) computer. That certainly is an interesting prospect!

Further, with some relatively simple glue logic I think this might even be extendable to 65xx/68xx style CPUs. The requirement being 5V operation and socketed DIP 40 chips. The glue logic would have to decode the upper 11 address bits to a simulated /IORQ signal. That would be I think a 74LS682 with a 8 position DIP switch, a 74LS32 and maybe an inverter with some option jumpers. Also /R/W* would have to be converted to whatever the PropIO uses.

I find it is interesting to think about new applications for the PropIO especially since it may pave the iway for a more general application of the other N8VEM boards to help vintage computers with small and/or inactive hobbyist communities. Especially if it doesn't require custom hardware development for each instance of application and we can solve the problem in a more general approach.

Thanks and have a nice day!

Andrew Lynch

March 9th, 2010, 07:56 AM

N8VEM mailing list post with photos.


Thanks and have a nice day!

Andrew Lynch

March 10th, 2010, 03:05 AM
Hi! The builder helping me prototype the PropIO <-> KayPro shim socket adapter has updated the thread. He's posted photos that confirm the PropIO is working from within the KayPro so I believe we have "proof of concept". That's good news!

What's left is the host software to drive the board. Accessing the PS/2 keyboard and VGA display is trivial. There is a 5 line MBASIC program on the thread for demonstration. Once the microSD is supported in the CBIOS it should be fairly easy to access it as well but would require a CBIOS to integrate into CP/M as a drive. Its certainly "doable" just requires someone with the desire to make it happen.

I've already designed a PCB for the Z80 shim socket adapter so what's left is more testing on various Z80 platforms and software development. The host does not have to be a KayPro as it could be any Z80 (DIP 40 socket) based machine although we need more testing to determine the level of compatibility. With the shim socket it is completely bus independent so this could be applied to S-100, ECB, proprietary, or even integrated/nonexpandable Z80 computers.

With a bit of creative interfacing I believe this concept could be extended to other CPUs such as the 65xx/68xx series, 8088/6, 68K, etc machines. However each new CPU would require a certain amount of interface logic on the shim socket PCB to work. The signals the PropIO needs are typical Z80 signals such as A0-7, D0-7, /RD, /WR, /IORQ, and the expected power rails (VCC & GND). I have some notional circuits to interface to the 65xx/68xx CPUs but they need testing.

What the project needs to move forward is more hobbyists willing to build an N8VEM board and the shim socket prototype to verify it will work on their host machine. Depending on hobbyist interest I may get some manufactured shim socket PCBs. They should be relatively inexpensive since the Z80 shim socket PCB is fairly small (2"x1.5") and single sided. I don't have a price estimate or ETA though. Before launching a project though I recommend some research into whether the PropIO or other N8VEM board would be compatible with the host machine such as CPU line loading, available IO ports, etc.

Thanks and have a nice day!

Andrew Lynch

March 10th, 2010, 07:58 AM
Fascinating. Thanks for the info, Andrew. :)

I'd build an N8VEM board if I knew how.... but I don't. I do know how to buy nicely manufactured, tested and working boards that easily install. ;)

March 10th, 2010, 11:40 AM
Hi! Well, if it were nicely manufactured, tested, and working boards they would be commercial items and cost big $$$. :-) As home brew hobbyist items I can keep the costs low by just offering the PCB (or you can make your own since all the design information is free and publicly posted) and letting the builders make their own units. I am not as ambitious as Hargle is on the XTIDE to offer pre-assembled/tested units or even kits. I suspect after the beating he is currently taking on XTIDE that neither will Hargle on future projects...

Building your own units from the PCB is fairly easy due to the conservative design rules. The N8VEM PCBs are all DIP PTH construction with 0.1" feature size, wide traces with relatively large clearances. They are designed for beginners to reliably construct with minimal or no experience so it is about as easy as home brew electronics can be.

Of the many (hundreds?) of PCBs I've sent out I am not aware of a single unit that a builder could not get working to at least some degree -- after at most a correction or two. Normally boards work on the first try although some times they come with minor modifications. I have a standing offer for if that ever does happen to send me the board (after a good faith effort to do it themselves first) and I'll fix it on my bench. No one has accepted that offer yet to my surprise.

Your initial post has been sort of a catalyst for an idea that had been at the back of my mind for some time and now has a chance to finally express itself. Really it is about breaking the dependency of the N8VEM peripherals on the ECB backplane and the prototype has shown it can be interfaced directly to the CPU socket.

Maybe this idea will take off and maybe it won't. I hope it does but am realistic about its chances. Demand gets pretty thin as you traverse out to the edges of common vintage computers. I'll gauge the level of hobbyist interest before ordering any shim socket PCBs.

Thanks and have a nice day!

Andrew Lynch

Lord Moz
March 10th, 2010, 07:56 PM
I've already designed a PCB for the Z80 shim socket adapter so what's left is more testing on various Z80 platforms and software development. The host does not have to be a KayPro as it could be any Z80 (DIP 40 socket) based machine although we need more testing to determine the level of compatibility. With the shim socket it is completely bus independent so this could be applied to S-100, ECB, proprietary, or even integrated/nonexpandable Z80 computers.


Thanks and have a nice day!

Andrew Lynch

Soo... If one were motivated enough, one could adapt this thing into, say, a Mattel Aquarius and make it not-suck? :D
I suppose if one were to do that, they should put some extra RAM on the shim or somewhere since 4KB is about useless...

Sorry, I don't know why the Aquarius jumped to mind when you said any Z80 system ;)


March 11th, 2010, 02:37 AM
Hi! Well, yes, in theory at least. Does the Aquarius use a DIP 40 socket Z80? If so it certainly is a candidate. The only way to find out is to review the schematic and take a look. There is no substitute for doing the homework!

I imagine there could be designs that are incompatible and probably are somewhere if one were to look hard enough. However, most Z80 computers tend to follow similar patterns of implementation. Some things I would look for to indicate incompatible designs are if the /WAIT line pulled high with VCC. If so that would be a problem since most Z80 computers use pull up resistors to pull signals high. Does Z80 design allow the use of IO ports? I suppose someone could build a Z80 machine that only uses memory mapped IO although it would be quite unusual.

Ultimately it depends on the host computer design but if the shim socket fits it should work. The PropIO will appear as port IO on whatever address the builder selects. Line loading may also be an issue however since the PropIO uses buffered inputs and data bus transceiver it has minimal bus loading assuming the ribbon cable is kept short. Also, is the VCC capable of the additional load? Is the ground solid enough for the additional devices? So forth and so on. In the end though ultimately the only way to know for sure is to give it a try.

As for the RAM, that is a different story since the PropIO does not contain RAM on the memory bus. The N8VEM peripherals are accessed via IO ports not by shared memory. If a builder wanted to make a custom shim socket that also included a RAM expansion that would be possible I suppose but that is beyond the scope of this device. Certainly building a customized version of the PropIO for the Aquarius is not practical.

To be clear, I am not saying this device is guarranteed to work in all Z80 computers. I am saying it *could* work in a DIP 40 socket Z80 computer assuming the design is *compatible*. However, since the ECB is basically a buffered form of the Z80 bus to start with and the PropIO is similar to a common Z80 IO peripheral implementation the chances of it working in the arbitrary Z80 computer are fairly good.

What we do know is my claim that it *could* work is not an empty assertion. In at least one case, we took the PropIO built a shim socket prototype per design plugged it into a essentially random Z80 computer and it *did work* as predicted. I am confident there are cases out there where it won't work as well but until the research and experiments are done no one will ever know for certain.

I believe this approach could provide opportunity to a lot of "stranded" vintage/classic Z80 computers lacking key peripherals such as floppy drives, IDE, microSD, etc. I don't claim it to be the "magic bullet" to fix all Z80 systems since that would be nearly impossible. I've seen several cases of old Z80 computers where I've thought it would be nice to have an IDE interface for example or microSD instead of a broken floppy drive (or worse a cassette drive). For example fixing a KayPro with a broken keyboard or video display? Similar issues pop up here on vintage-computer.com forum regularly.

I hope this helps. Thanks and have a nice day!

Andrew Lynch

May 11th, 2010, 11:21 AM
This is an awesome project. :) I've got a Kaypro 10 and a 2 coming soon and I'd really like to be able to retire the MFM drive in the 10 before it dies. I never met a soldering iron I couldn't use, either. :)

Has any further progress been made? I'm really only interested in the SD portion of the project, but the other bits might come in handy with my Ampro Littleboard...


May 11th, 2010, 12:20 PM
Hi! Yes, we did some testing with the N8VEM on a KayPro and it seemed to work fine with the DIP adapter socket. Also tested it in a SpectraVideo and it worked there as well. No further testing though as PropIO has been sort of on a hiatus. Development continues but sort of quietly. I still haven't seen the final uSD software yet but at last word the builder writting it had it working and was finishing up the CBIOS for the N8VEM SBC. Certainly PropIO could be used in the manner with a KayPro as proposed and there is some experimental evidence to support it. However this is a "do it yourself" kind of project and probably would require a CBIOS to be useful.

Thanks and have a nice day!

Andrew Lynch

May 11th, 2010, 12:47 PM
Thanks for the update Andrew. I'm pretty sure it would be "easy" to convert the N8VEM CBIOS over to the Kaypro.


June 24th, 2010, 03:43 AM
Hi! A build just posted some prototype code with a CP/M CBIOS to use the PropIO for the console IO (VGA and PS/2 keyboard) and storage (uSD).


With the prototyping on the Kaypro demonstrated earlier and this new PropIO code, I would claim there is now a SD card reader for the Kaypro. Likewise, using the same technique but with the DiskIO board there is also an IDE interface however that would still need to be demonstrated although based on previous testing I am fairly confident it would work.

Thanks and have a nice day!

Andrew Lynch

June 30th, 2010, 02:46 AM
Hi! There has been a flurry of activity on the N8VEM mailing list recently due to the PropIO uSD CBIOS and ROM image announcement. The final software is not out yet but its amazing all that's happened with it so far. There are CBIOS and bootable ROM images for the N8VEM SBC. I think once the PropIO finally takes off it will be popular since it provides silent uSD storage and VGA and PS/2 keyboard interface.

This could also be a "shortcut" to a Kaypro (or any socketed Z80 AFAIK) uSD reader/writer and/or IDE interface this looks like a good opportunity. However, what's needed is someone familiar enough with the Kaypro to make a ROM that supports booting from the PropIO uSD and/or DiskIO IDE interfaces. I think the N8VEM SBC PropIO DiskIO code could fairly easily be adapted were someone inclined to do so -- not me as I am swamped. This could supplement a Kaypro with PropIO uSD and DiskIO IDE primarily. The PropIO also provides VGA and PS/2 keyboard and DiskIO also included FDC. I don't know how useful those would be but might help repair a system.

The PropIO has been demonstrated to work with the Kaypro with a shim socket so this is not too far fetched. It just requires the final piece -- the replacement ROM for the Kaypro motherboard. It can be any Kaypro model with a socketed Z80 CPU. I vaguely recall "SharkOnWheels" discussing such a project a long time ago but I haven't see him around for a while. If the project takes off I will make the "shim socket" PCBs to help easily plug the Eurocard boards into the Kaypro CPU socket. This is home brew Do It Yourself project so community involvement is critical for it to make it happen.

Thanks and have a nice day!

Andrew Lynch