Amiga.org
Amiga computer related discussion => General chat about Amiga topics => Topic started by: kamiga on November 19, 2007, 11:23:22 PM
-
HI all,
I've been putting some more work into my DIY Amiga Floppy Project, aka usb-attached external amiga floppy drive controller.
It uses a regular external PC drive to convert low density 880kb amiga floppies to .ADF. Attaches via USB, and you run a java interface. Give it a filename, click read, and poof, about 1 minute later you've got your ADF. It doesn't write ADF's yet.
While it's still in the prototype stage, it works very well, and I've been using it lately to archive my amiga archive of floppy disks.
Everything is completely open source, although everything is so dynamic at this point, there's no easily downloadable .zip package or anything yet.
Here's a couple links, if you are interested:
Graphic Intro (http://www.techtravels.org/amiga/amiga.html)
Day-to-Day blog (http://www.techtravels.org/amiga/amigablog/)
PCBoard images (http://www.techtravels.org/amiga/amigablog/?p=139)
Schematic (http://www.techtravels.org/AFPschematic.gif)
Java screenshot (http://www.techtravels.org/amiga/AFPscreenshot.jpg)
I'll probably throw up an image in the image section here too.
Thanks for taking a look.
Keith
-
@kamiga
I need this! I really hope you get it working fully.
I thought the main reason you can't read Amiga disks in a PC floppy drive was due to the drive speed. Is that right? What issues do you have to overcome?
-
you have my support :)
never give up for that project
-
Well there's a couple different issues, and I don't claim to be expert in any of them.
The main reason you can't read amiga disks inside a PC is because an IBM PC floppy controller is looking for sector gaps. An Amiga writes tracks with no sector gaps whatsoever, and literally had sector1-sector2-sector3 etc.
The speeds, 300RPM, is the same for most floppy drives. Older drives were somewhat different, and the Amiga did funky things like half the speed of the drive for Amiga HD disks.
My project works right now for reading low-density disks. There are other longer term goals, but for now, it does exactly what I intended to do when I started. Honestly, it took a lot of head-banging to get everything right. The amount of man-hours involved was ridiculous. Partially because I'm inexperienced with this stuff, and partially because (sufficient, up to date, fully explained) documentation/help is hard hard hard to find.
Now note (completely different issue) that PC DRIVES can't generally be used without modification as an amiga drive. This is mainly a cable pinout/jumper issue where the amiga floppy controller (more software than hardware) is expecting certain signals in certain places. Wrong pinouts means disk change signals don't work, and so on. There are cable diagrams on this site, description for jumpers all over the place, etc.
My project uses a standard IDC34 pin PC floppy cable, and a standard unmodified PC floppy drive.
There's other hurdles to overcome in a project like this, and my blog spells out the history pretty good.
Thanks
-
1NOM155 wrote:
you have my support :)
never give up for that project
Thanks man. I haven't given up yet! Lord knows I wanted to quit on more than one occasion.
I really have enjoyed working through all the issues, and I've had a very small but dedicated clan of people on my blog that throws me hints every now and again.
The good news is that reading low density disks works reliably right now...........so adding features/functionality is sort of the next step.
Thanks again.
-
that's very cool!
so if I understand this correctly, one needs your special 'black box' between a PC and a floppy drive.
what if there's already a floppy drive on the PC?
-
cecilia wrote:
that's very cool!
Thanks. I think so too!
so if I understand this correctly, one needs your special 'black box' between a PC and a floppy drive.
That's right. You need my magic box in the middle. This is what makes everything possible. It's the microcontroller, the memory, and the USB interface.
what if there's already a floppy drive on the PC?
It doesn't help you. :) The magic box is outside the PC, the drive will be outside the PC. Unless you get creative and mount the PCB inside the PC, connect to internal USB headers/conncetors, and the drive itself. NEVERMIND. :)
My USB external controller REPLACES or is used in place of the standard built-in (northbridge on a PC, I think) floppy drive controller.
Thanks
-
Nice work! Keep it up. Great pages too! (schems, photos, blog)
Cheers
-
cecilia wrote:
what if there's already a floppy drive on the PC?
If you already have a floppy drive on the PC, all you need is another floppy drive connected using the same cable.
One is used for the Amiga disk, the other is used with a blank disk as a control sync disk. It works fine for reading Amiga disks to ADF.
The software you need is fdrawcmd (http://simonowen.com/fdrawcmd/) and ADFread (http://www.winuae.net/files/adfread-1.1.zip)
-
alexh wrote:
cecilia wrote:
what if there's already a floppy drive on the PC?
If you already have a floppy drive on the PC, all you need is another floppy drive connected using the same cable.
One is used for the Amiga disk, the other is used with a blank disk as a control sync disk. It works fine for reading Amiga disks to ADF.
The software you need is fdrawcmd (http://simonowen.com/fdrawcmd/) and ADFread (http://www.winuae.net/files/adfread-1.1.zip)
does that solution include a laptop? I mean my laptop has a floppy drive - probably one of the last of a dying breed :lol:
-
kamiga wrote:
The main reason you can't read amiga disks inside a PC is because an IBM PC floppy controller is looking for sector gaps. An Amiga writes tracks with no sector gaps whatsoever, and literally had sector1-sector2-sector3 etc.
I'm assuming that IBM PC floppy drives read the first sector of an Amiga disk as usual then flag up an error when it can't find a sector gap? Or does the PC drive stop working when it doesn't recognise the file format?
-
HenryCase wrote:
I'm assuming that IBM PC floppy drives read the first sector of an Amiga disk as usual then flag up an error when it can't find a sector gap? Or does the PC drive stop working when it doesn't recognise the file format?
You know, I honestly don't know. I've never actually attempted to read from the PC, and didn't have any experience prior to this with PC FDC's.
I have read a few things that indicate that the entire track is returned as the first sector, but I'm guessing it sees this as a "giant" sector. It might over-run any available buffer space. It might try to continue to read for other sectors..... just all guesses. I dunno if the information is delivered track-by-track(probably) basis or sector by sector. In either cases, the sizes are going to be all wrong which could really screw up addressing, timing, etc.
I initially did some research, a couple years back, read about the NEC 765 (IIRC) FDC, and nothing looked promising. It's not as simple as just "ignoring the errors." The FDC hardware/firmware itself appears to be the limitation. I took the lack of available working software-only-solutions to mean that it's been looked at by smarter people, and found impossible.
Newer OS's do hardware-abstraction stuff and they really don't cooperate easily when you try to get to the hardware. Big difference from 95/98...
USB is convenient, friendly, modern, and so forth. I like it.
Here we are now, practically 2008, with still no software-only solution.
Besides, I would have never learned how this darn thing they call electronics and microcontrollers worked had I not attempted it! :)
My solution also provides a platform for ever-expanding features including the ability to write disks, support for other OS's disks, etc......
While I don't know yet about the practicality of building my device, I'm taking efforts to reduce the complexity, cost, and so on. The raw pieces and parts are actually negligible in terms of costs, but the device needs assembled and programmed. Programmers are expensive, but I thought of offering a free/cost-only programming "service." to eliminate that as a requirement.
Or perhaps sell a prototype board with SMT memory pre installed, and mcu programmed.....
Thanks
Keith
-
So if I read this correctly, you're using some kind of 34-pin FDC connected to the PC via USB?
Could this work with a straight USB floppy drive, for instance the NEC drives sold for Dell laptops, etc.?
-
LoadWB wrote:
So if I read this correctly, you're using some kind of 34-pin FDC connected to the PC via USB?
Well, yes, some kind of FDC :) It's _my_ floppy drive controller, that I created from the ground up. It's more or less a Parallax SX28 Microcontroller with my custom firmware, with serial memory for track-storage, and a device that converts TTL level voltages to USB. I access FTDI's USB functions via their .DLL, through Java. FTDI has library support for other OS's as well.
Could this work with a straight USB floppy drive, for instance the NEC drives sold for Dell laptops, etc.?
No, probably not. Those USB drives are probably (I haven't taken one apart to look) some type of glue-logic between USB and a standard floppy drive. I wouldn't be surprised to see a 34-pin (or similar) connector on a laptop-sized floppy. I think laptop sized drives use a slightly smaller connector, but heck if I remember what it is. The floppy interface includes like 17-ground leads, completely unnecessary --- so you actually only need perhaps 10-15 leads.....
I would imagine the FDC that is integrated into the actual USB floppy case, and I'm _sure_ they would have used a standard PC based 765-ish/Intel 8272-ish FDC. So the FDC located in the drive is more or less what's integrated into your motherboard on a standard desktop. (read:same limitations as on a normal PC)
I've actually seen USB->floppy interface chips that are available, and some of them even have replaceable firmware. But there are some hurdles regarding learning the particular processor/controller/core or whatever you want to call it on those chips. It also requires specialized compilers, etc, that are either expensive, or hard to properly configure in *nix world. Ideally, this might be the approach a pro might use. My way was a lot more affordable and reachable by a DIY'r. Parallax's SX Tech Tool plus kit is like $100 for everything you need except the $10 power supply.
Thanks
Keith
-
kamiga,
I found magazines of the elektor "Jun 2007 - Portuguese edition" based on article "Universal USB Device - Mach 2007 - English edition"
An Universal USB Device (driver), with free code, maybe can help you on the project. If you are interested, send me an PM.
By the way have a look at this sites:
http://libusb-win32.sourceforge.net
http://gcc.gnu.org
http://sourceforge.net/forum/?group_id=78138
-
Hi,
1NOM155 wrote:
An Universal USB Device (driver), with free code, maybe can help you on the project.
Well, I already have direct access to all the USB-serial converter functions via FTDI's .DLL. A guy named Pablo Bleyer created a java wrapper called jd2xx for java access to the .DLL. It's really easy to use and pretty cool. FTDI's documentation is superb, and I was up and running within minutes. FTDI has libraries for multiple OS's, so I'm covered there as well.
But I'll check out those links, and thanks for posting them!
Keith
-
da9000 wrote:
Nice work! Keep it up. Great pages too! (schems, photos, blog)
Cheers
Hey, thanks, da9000!
I've put a fair bit of working keeping the website current, making sure the latest version of wordpress is installed, backed up, customized.
I want to refresh the whole web site a little bit, and integrate the blog into the rest of the site more cleanly.
If you are interested, here's a little graphic I threw together showing my device in action:
Anatomy of a flux (http://www.techtravels.org/amiga/anatomypulseFULL.gif)
It shows how the incoming flux transition (or lack of one) is processed by the project, and stored accordingly into the memory.
I thought it was neat, anyways. :)
Thanks
Keith
-
Any news?
-
:bump:
-
There hasn't been any major improvements or news since the thread was last active.
The most recent post is from 1/15 here
http://www.techtravels.org/amiga/amigablog/?p=189
I've a new 3-week old "project", although my wife would probably not describe her like that.
Thanks
-
My project works right now for reading low-density disks. There are other longer term goals, but for now, it does exactly what I intended to do when I started. Honestly, it took a lot of head-banging to get everything right. The amount of man-hours involved was ridiculous. Partially because I'm inexperienced with this stuff, and partially because (sufficient, up to date, fully explained) documentation/help is hard hard hard to find.
Now note (completely different issue) that PC DRIVES can't generally be used without modification as an amiga drive. This is mainly a cable pinout/jumper issue where the amiga floppy controller (more software than hardware) is expecting certain signals in certain places. Wrong pinouts means disk change signals don't work, and so on. There are cable diagrams on this site, description for jumpers all over the place, etc.
What kind of documentation do you need? I have the book by Abacus books on Amiga Dos. What kind of documentation do you have? Have you tried contacting any of the old Commodore staff for help? I know where two of them are but I haven't gotten an answer to email yet.
-
Actually, as of today, I'm pretty good as far as documentation goes.
Where were you two years ago? :)
I contacted some old Amiga guys a couple years ago, and they were very helpful. None of them remembered any of the low-level critical details, but they were helpful nonetheless.
I'm going to eventually release a detailed document describing everything one needs to know to interface with amiga floppy disks. It will end up being at least a partial compilation of existing sources, but will also include real-world observations, ways of writing embedded code to deal with the amiga floppy data, timing diagrams, and so on.
I would like a copy of Ralph Babel's Amiga Guru Book, in English, of course. I'm not sure what's in there regarding floppy stuff, but I'd like to get my hands on it. I sent an email to APC/TPC or whatever their name was so that maybe there will be an English reprint.
Thanks for your post.
-
Are there any files that can help you here?
http://www.thule.no/haynie/
-
I found some drivers for Chinon. If you could identify their write/read scheme in the code, it might help.
It seems that some of the users on C-64 boards know more about the drive since the 1541 was made by the same company.
http://www.cdrom-drivers.com/companies/210.htm
If you need any information from my book, I would be glad to help you. I'll look in it tonight and see if there is anything of help.
-
I have to give you credit for getting some results.
It has been 20 some years but I remember reading in the computer magazines and I can't remember which one but it was Commodore's position that the drives (Amiga to IBM) were incompatible. I don't know what the reason was but they just kind of rebuffed us at the notion. Maybe they wanted to be the only supplier. I don't know.
Amikit is supposed to come out with a MK4 device that will let you read Amiga disks on an IBM. It is supposed to come out this month but I haven't gotten an email yet. The price is probably $120 or so.
-
Ok. I found the book on the material you need and I emailed you some additional information. I hope you can make it work. Just check your email.
-
The good news is that it's already working!! It's been working for about a year.
There's a post on my blog here
http://www.techtravels.org/amiga/amigablog/?p=134
and also here
http://www.techtravels.org/amiga/amigablog/?p=183
where I created about (50) .ADF's from my disks.
I gotta get back to work and get them all scanned in.
Thanks!