torindkflt wrote:This is more of an "I'm just curious how feasible this would be" thought, as opposed to an "I want to do this and need help" question.
I have been thinking about it. Requires LPT connector, 5V to 3.3V level translator, external 5V supply input, 3.3V regulator and of course the SD card socket, so the hardware is very simple.
torindkflt wrote:
Has anyone here experimented with finding a way to read SD memory cards via the parallel port on old PCs? I imagine it would be a good (albeit slow) way to move bulk files to and from vintage computers that lack USB and networking, provided you didn't use cards larger than 2GB or used an OS that recognizes FAT32.
The most simple way is to use the SD card in the 1-bit SPI bus mode instead of the native 4-bit SD mode. Many microcontroller projects do this. On PC, it would be quite slow to bit-bang the SPI bus. Transmitting bits is just a matter of setting data output bit, toggling clock bit, reading data input bit, toggling clock bit, for all the data bits that need to be transferred. The bits are framed into bytes of 8 bits and messages of known lengths separated by the usage of chip select line. Another option is to try having a microcontroller between parallel port and SD card to allow for protocol conversion so multiple bits are transmitted per clock from the PC to microcontroller. Then it does not really matter if it is a SD card or USB stick connected as the storage media.
The biggest task is to write the PC software really. Obviously the PC knows nothing about SD cards being connected to LPT ports, so you can't boot from it, unless you have a boot rom that can present the SD interface as hard drive. The boot rom can be written of course, but then the problem is where to put the boot rom, perhaps program it into a flash chip and put it into a network card boot rom socket.
Another option is to make a DOS driver for the device so when driver is loaded in config.sys, it can access the SD card and present it as some drive, much like Zip drives or CD-ROM drives. The downside is you still can't boot from it, and you are limited to DOS understanding the partition table and file system on card (unless it's mounted as kind of image, which is also doable, but DOS 6.22 still can't use partitions larger than 2GB and drives larger than 8GB).
Third option is to just not let DOS know about the card at all, only write a software (menu driven like Norton Commander or the like) to browse the card and copy files to/from floppies or harddrives seen by DOS. Then it does not matter if the card is FAT32 or whatever as long as the copying software can understand it.
If the card is not on parallel port directly, but accessed through a microcontroller, it could be made to emulate DOS interlink through parallel or serial port so no DOS software would be needed.
Also the microcontroller could look like a BBS so file transfers with any modem terminal programs are possible, albeit at 115kbps only.