English Amiga Board


Go Back   English Amiga Board > Main > Amiga scene

 
 
Thread Tools
Old 06 September 2014, 02:34   #1
JimDrew
Registered User

 
Join Date: Dec 2013
Location: Lake Havasu City, AZ
Posts: 496
SD card adapter

With the advent of all of the various FPGA Amiga emulators, as well as software based Amiga emulators (for PC, iPhone, iPad, etc.) it seems that the biggest battle still is how to get data from a real Amiga over to the emulator.

Is there a simple SD card adapter available for the Amiga? If not, I am considering making one that plugs into the parallel port and uses micro-SD cards. I would have a device driver where you would mount it like any hard drive. It wouldn't be blazingly fast through the parallel port (perhaps a few hundred K per second), but since this would probably not be something you would use on a regular basis, the speed probably doesn't matter. I just need some way to move hundreds of megs of Amiga source code and such to my emulations, and the current method of using a SCSI device connected to a PC works in most cases, but it is not very convenient to have to move a Syquest drive back and forth. Copying data to a SD card that could be read by anything that understands FAT32 would be a much better solution. Thoughts?
JimDrew is offline  
AdSense AdSense  
Old 06 September 2014, 03:22   #2
Vot
Registered User

 
Join Date: Aug 2012
Location: Australia
Posts: 646
Depends on your amiga, the a1200 and a600 have the pcmcia slot, there are pcmcia to cf card adapters they are very cheap 10 usd price range.. Most people with an a1200/600 would use that i guess

There are sd card readers in the 30 usd region that plug into the ide port as well. Although i guess they are not hotplugable. (Don't have one)

On an interesting side note i saw discussion on the gotek thread asking if its possible to use the gotek as a cheap usb stick reader. Of course the limitation here is its max read speed will be the floppy transfer rate which i think is 500kb/s.
Vot is offline  
Old 06 September 2014, 04:27   #3
JimDrew
Registered User

 
Join Date: Dec 2013
Location: Lake Havasu City, AZ
Posts: 496
I wanted something that can plug into any Amiga (the A1000 would need a gender changer since its parallel port is backwards from the rest of the Amigas). I have a A500 developer setup with a huge Supradrive (well, huge for the time). I also have an A3000 with numerous large SCSI drives inside, I also have a Blizzard equipped A1200 with smaller IDE and the CF flash adapter along with a PCMICA<>CF adapter, and of course an A4000 with a big IDE drive (no CF adapter, but I should do that). There is no one solution that works with all of these. I just bought a SCSI<>CF adapter (not the SCSI<>IDE<>CF solution, a real SCSI<>CF solution) so that I can remove the SCSI drives from the A3000.. they are starting to tick periodically, so you know what that means! I also have a SCSI DAT drive with all of my backups - and that still works after all of these years. But there is no easy way to get any of this to the PC, which is why I wondered if a device that plugged into the parallel port is something people would be interested in. I think I am going to build one for myself as I don't see any real easy way to move the various formats around. Yeah, the floppy port would be a little slow.. about 55K per second max (if you disabled the Amiga). With the parallel port you could get much faster speeds without tieing up the machine. The limiting factor really is the CIA bus timing. But, at this point I would settle for a single solution that was 10K per second, and let it run all day long! It sure beats having to swap drives and PC cards around every time you wanted to transfer something from/to a real Amiga.

Last edited by JimDrew; 06 September 2014 at 04:55.
JimDrew is offline  
Old 06 September 2014, 11:00   #4
Total Eclipse
Registered User
Total Eclipse's Avatar
 
Join Date: May 2005
Location: Atherstone / UK
Age: 43
Posts: 107
Sounds like a great one-size-fits-all solution! Any idea how much it's likely to cost?
Total Eclipse is offline  
Old 06 September 2014, 15:36   #5
robinsonb5
Registered User
 
Join Date: Mar 2012
Location: Norfolk, UK
Posts: 522
Quote:
Originally Posted by JimDrew View Post
Yeah, the floppy port would be a little slow.. about 55K per second max (if you disabled the Amiga). With the parallel port you could get much faster speeds without tieing up the machine.
Surely the floppy port is less likely to need to tie up the machine (DMA!) than the Parallel port (spoonfeeding data byte-by-byte, and either a tight loop or the overhead of interrupts)?
robinsonb5 is offline  
Old 06 September 2014, 16:45   #6
fryguy
Registered User
 
Join Date: Aug 2005
Location: Hjo, Sweden
Age: 38
Posts: 724
There's this one http://eab.abime.net/showthread.php?p=956757
fryguy is offline  
Old 07 September 2014, 05:07   #7
JimDrew
Registered User

 
Join Date: Dec 2013
Location: Lake Havasu City, AZ
Posts: 496
Thanks for the link! Looks like he used discrete logic, and from his description it is a block-level device. This means that the parallel port has to setup the card and also transfer the data to/from it. My plan was to use a high speed PIC24 to handle the SD card via its DMA, and use the parallel port really for just moving data to/from the on-board buffer. After thinking about the floppy port a bit more, that idea is completely out because you have to emulate a disk drive and although I can certainly do that (and will be with SuperCard Pro, much like the HxC does) the speed would be dramatically lower than I was thinking because you would need to use MFM encoding/decoding because you can't write all values (0-255) as MFM.

I wrote empscsi.device for the EMPLANT board, so I suppose I could make the device driver support all of the same commands and then it could be used with HDToolbox. The PIC24 would query the card and determine the geometry. However, this is not going to solve the problem I have been talking about! It would just get you a nifty little SD card hard drive, not something that you could use to transfer files to a PC formatted SD card, which is what we are after here. We want something that we can copy Amiga files to and then pull the card and put it in a PC and read those files on it.

It would need a transfer program that would let you pull up a file requestor and select a bunch of files and then copy those files to the SD card. I would like to support both directions so you could move files back to the Amiga as well. I guess I could make the driver so you could mount it, but that would only be handy if you had a couple of real Amigas you wanted to share data with.

It's a bit of hardware to make it all work, so it would probably be in the $50 range retail, depending on the quantity. That's cheaper the C64 SD2IEC type devices that do the same basic thing.
JimDrew is offline  
Old 07 September 2014, 08:22   #8
Magic
Registered User
 
Join Date: Aug 2007
Location: USA
Posts: 176
@JimDrew

I still have a Parnet cable with an old Parbench boot floppy and also a "twin express" setup to address concerns similar to yours .To make it worse many of my machines have been "moth-balled" for years (yes, with batteries removed).

I would be interested depending upon price of course. I am watching your other current projects as well. Keep it up and many thanks as always!
Magic is offline  
Old 07 September 2014, 09:37   #9
JimDrew
Registered User

 
Join Date: Dec 2013
Location: Lake Havasu City, AZ
Posts: 496
I found this project by Bruce Abbott:

http://netti.nic.fi/~some-e/amiga/amizip/

Testing with a stock A500 gives R/W speeds of 64K per second (over 114K with a A1200/030). It uses a system friendly device driver and has to wait on the Zip drive to respond to commands. So, I should be able to beat this speed with a DMA'd SD card. That would be plenty fast enough for copying files.

I guess if the partition was setup with CrossDosFileSystem I could probably just make a block transfer driver without having to handle the FAT32 on my device, but I bet that would really kill the speed. CrossDos is pretty slow,

Last edited by JimDrew; 07 September 2014 at 21:17.
JimDrew is offline  
Old 07 September 2014, 10:07   #10
Magic
Registered User
 
Join Date: Aug 2007
Location: USA
Posts: 176
Have you seen this project?

http://eab.abime.net/showthread.php?p=956757
Magic is offline  
Old 07 September 2014, 14:58   #11
mark_k
Registered User
 
Join Date: Aug 2004
Location:
Posts: 2,703
An IDE (and maybe fast RAM) interface that plugs into the A500/A1000 side expansion port would be nice. Similar functionality to kipper2k's internal CF/IDE/fast RAM board except no need to open the case. Then you could easily connect/swap CF cards for data interchange. I think that board emulates the A600 IDE hardware, so you can just use Kickstart 37.300 or later to get auto-boot support.

A parallel port SD card interface could be an interesting challenge; see how few components you can use. Bit-bang the SPI bus over the parallel port, maybe just needing some TTL level translators??? [Performance of such a minimal interface would be pretty poor and would probably require disabling interrupts for long periods.]

But I don't think you need to design your own hardware for easy data interchange, at least with SCSI-based Amigas. Apart from using CF cards you could fit a SCSI card to your PC (lots of cheap used ones on eBay), maybe pick up another SyQuest drive so you can just swap those disks instead of having to swap the drive itself from Amiga to PC. Or buy a couple of Zip drives, one SCSI for the Amiga, the other USB for the PC.

You mentioned having DAT backup tapes. I'd recommend connecting your tape drive to a PC and imaging all the tapes before they become unreadable. One Windows program for creating an image file from a tape is Tape-IO for Windows, there may be other/better ones. Apart from doing that for data security/preservation, WinUAE has rudimentary SCSI tape emulation which might be enough to allow you to restore your backups on an emulated Amiga, from your tape image files.
mark_k is online now  
Old 07 September 2014, 19:36   #12
JimDrew
Registered User

 
Join Date: Dec 2013
Location: Lake Havasu City, AZ
Posts: 496
I want a single device that can be plugged into the A500, A600, A1000, A1200, A2000, A2500, A3000, and A4000.... and the CD-32 (via one of the expansion boxes that were created for it). The only options would be floppy port or parallel port, since that is the only interface that is in common with all Amiga models.

I will make images of my DAT tapes when my SCSI<>CF adapter arrives. Thanks for the link.

The fast PIC24 micros would require level conversion and a voltage regulation circuit for the 3.3v needed by the PIC and SD card. The PIC24 has DMA so it can handle the SPI port for the SD card, and allow asynchronous fetching/putting data via the parallel port. It could actually be pretty fast without tieing up the machine.
JimDrew is offline  
Old 07 September 2014, 21:18   #13
JimDrew
Registered User

 
Join Date: Dec 2013
Location: Lake Havasu City, AZ
Posts: 496
Looks like external power would be needed. 10mA on the parallel port would not be enough for most SD cards, not to mention a high speed micro.
JimDrew is offline  
Old 08 September 2014, 16:05   #14
ferix
Registered User
ferix's Avatar
 
Join Date: Sep 2009
Location: Spain
Age: 40
Posts: 95
Quote:
Originally Posted by JimDrew View Post
Thanks for the link! Looks like he used discrete logic, and from his description it is a block-level device. This means that the parallel port has to setup the card and also transfer the data to/from it. My plan was to use a high speed PIC24 to handle the SD card via its DMA, and use the parallel port really for just moving data to/from the on-board buffer. After thinking about the floppy port a bit more, that idea is completely out because you have to emulate a disk drive and although I can certainly do that (and will be with SuperCard Pro, much like the HxC does) the speed would be dramatically lower than I was thinking because you would need to use MFM encoding/decoding because you can't write all values (0-255) as MFM.

I wrote empscsi.device for the EMPLANT board, so I suppose I could make the device driver support all of the same commands and then it could be used with HDToolbox. The PIC24 would query the card and determine the geometry. However, this is not going to solve the problem I have been talking about! It would just get you a nifty little SD card hard drive, not something that you could use to transfer files to a PC formatted SD card, which is what we are after here. We want something that we can copy Amiga files to and then pull the card and put it in a PC and read those files on it.

It would need a transfer program that would let you pull up a file requestor and select a bunch of files and then copy those files to the SD card. I would like to support both directions so you could move files back to the Amiga as well. I guess I could make the driver so you could mount it, but that would only be handy if you had a couple of real Amigas you wanted to share data with.

It's a bit of hardware to make it all work, so it would probably be in the $50 range retail, depending on the quantity. That's cheaper the C64 SD2IEC type devices that do the same basic thing.
Hi JimDrew (and all the other people here...)

You're right, my device is based on standard TTL logic, just a simple SPI UART, and yes, it's a block level device (512 byte/sector).
The driver "only" has to handle all the sector (block) requests and translate them to the SD card.
It's not trivial, but quite simple.

The main bottleneck here is the low speed of the parallel port, and the fact you need to send a byte (0xff) to get another byte (this is how SPI bus works), so you need to write a byte, change the I/O port to input mode, read a byte and put back the I/O into output mode (to be ready for the next byte).

If you let the PIC microcontroller (I would use an Atmel Atmega...) to control all the SPI part, I'm sure you can use some sort of SCSI packet commands, speeding up the thing a little bit more.
Something like this: send a request command packet, wait for answer and start reading bytes one by one...

I suggest you to use SCSI-like packets, so you can pass them to upper layers of the driver with minimal changes, and providing Direct-SCSI from the start (I have to implement Direct-SCSI in software right into my driver).
So, the more you put into the microcontroller, the easier to write the Amiga OS driver.

By the way, my device supports FAT through fat95 filesystem driver, and I can use it as a transfer method between Amiga & PC.
In fact, it supports any filesystem you want if it's based on 512bytes sectors (or multiples of it), just like any other drive.

Last edited by ferix; 09 September 2014 at 09:10.
ferix is offline  
Old 08 September 2014, 16:40   #15
alexh
Thalion Webshrine
alexh's Avatar
 
Join Date: Jan 2004
Location: Oxford
Posts: 11,943
Interesting idea.

So the purpose of such a device is to get data from a real Amiga over to a another computer? This would mainly consist of user created 880k floppy disks, and content stored on an Amiga hard drive?

A600/A1200/A4000 users can already do this with a sub $10 IDE->CF or IDE->SD adapter. These work at the maximum PIO0 rate of the IDE interface and so are quite fast.

But you still have A500/A2000/A3000 & CDTV users who have limited options.

As you say the external floppy disk drive, serial port and parallel ports are common across all.

I imagine that users could put a Gotek floppy disk emulator in an old external floppy disk drive case for a budget solution today?
alexh is offline  
Old 09 September 2014, 06:37   #16
JimDrew
Registered User

 
Join Date: Dec 2013
Location: Lake Havasu City, AZ
Posts: 496
I need to transfer hundreds of megs of Amiga source code from a real A3000 (and then an A4000) to my PC so I can copy the data I want to a SD card for use with FPGA Arcade Replay. I can also use this data with WinUAE and FS-UAE. So, I don't want to go the floppy route. I also don't want to use CrossDOSFileSystem or something similar to handle the PC format. I have a super fast FAT32 handler I wrote for the PIC24 that will outrun this by a mile. The theoretical max transfer for the parallel port is 715K per second (every bus cycle). Obviously, your're not going to get that, but you could likely get a couple of hundred K per second. That ZIP interface has a lot of control stuff to setup and it's getting 114K per second. I would be happy with that. I could make it so this device also handles block-level transfers. I already have empscsi.device written, so I could just gut the 53C80 code and implement this. It handles SCSI-direct commands and such as well. So, I guess the device could be dual purpose. This biggest issue I see is that this needs external power because the parallel port only has 10mA of current available.
JimDrew is offline  
Old 09 September 2014, 08:57   #17
Yulquen74
Registered User
 
Join Date: May 2013
Location: Kleppe / Norway
Posts: 162
Have you considered designing/building a proper network adapter for the parallell-port, similar to plip-box?

You could then transfer files to/from the Amiga using Miami+FTP, and file-systems would be out of the equation. This would work on every platform using a hard-disk setup and Kick 3.1.
Yulquen74 is offline  
Old 09 September 2014, 09:40   #18
JimDrew
Registered User

 
Join Date: Dec 2013
Location: Lake Havasu City, AZ
Posts: 496
You can not FTP files to/from a machine that has no network access. I am looking for a simple local solution I can take and plug into various machines located in different locations and dump their contents. I also need to support OS1.2 and later (my A1000 is still running OS1.2).
JimDrew is offline  
Old 09 September 2014, 11:03   #19
ferix
Registered User
ferix's Avatar
 
Join Date: Sep 2009
Location: Spain
Age: 40
Posts: 95
JimDrew, I like your idea, but I can't see how to 'hook' an alien filesystem to the operanting system... what's your idea?

I would love to see that
ferix is offline  
Old 09 September 2014, 13:28   #20
alexh
Thalion Webshrine
alexh's Avatar
 
Join Date: Jan 2004
Location: Oxford
Posts: 11,943
Quote:
Originally Posted by JimDrew View Post
I need to transfer hundreds of megs of Amiga source code from a real A3000 (and then an A4000) to my PC so I can copy the data I want to a SD card for use with FPGA Arcade Replay.
Do you think that is something most users are going to want to do very often?

I am sure you've considered connecting your hard disk drives directly to your PC? Back in the day I had a PCI SCSI Ultra Wide card for my Windows PC with a super long data cable, didn't even take the hard drive out of my A3000, just swapped SCSI data cables.

Quote:
Originally Posted by JimDrew View Post
Quote:
Originally Posted by JimDrew View Post
The theoretical max transfer for the parallel port is 715K per second (every bus cycle). Obviously, your're not going to get that, but you could likely get a couple of hundred K per second. That ZIP interface has a lot of control stuff to setup and it's getting 114K per second. This biggest issue I see is that this needs external power because the parallel port only has 10mA of current available.
I also had an 8-wire PC2Amiga parallel cable and SW on the PC and the Amiga. USB parallel ports are very cheap if a good transfer rate can be achieved? No need for external power supply. Software already available with source code.

Last edited by alexh; 09 September 2014 at 13:35.
alexh is offline  
AdSense AdSense  
 


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
PCMCIA CF card adapter, that I can buy online? theshinyknight support.Hardware 13 07 November 2013 08:52
CF Card or Adapter Problem spanner support.Hardware 12 30 July 2012 19:38
Transcend - Card adapter ( CF I ) - PC Card spannernick support.Hardware 6 09 May 2012 21:58
PCMCIA adapter with 256mb CF Card issue smeghead support.Hardware 6 01 July 2011 11:23
A4000D cf card adapter and cdrom heALer support.Hardware 39 23 January 2011 22:05

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 00:03.


Powered by vBulletin® Version 3.8.8 Beta 1
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Page generated in 0.27791 seconds with 11 queries