Short: use CompactFlash cards in your PCMCIA slot Kurz: CompactFlash-Speicherkarten im PCMCIA-Steckplatz bearbeiten Uploader: t.jager@gmx.de (Torsten Jager) Author: t.jager@gmx.de (Torsten Jager) Version: 1.14 Type: disk/misc Date: 03-Jul-2002 (deutsche Beschreibung siehe unten - german description see below) $VER: compactflash.device 1.14 (03.07.2002) --- english section ---------------------------------------- Purpose ======= Read and write your digital photos, mp3 files etc. directly from CompactFlash cards as used by many mobile devices. The OS supplied "carddisk.device" appeared to be unable to understand CF cards. I already had bought that adapter card, so I decided to write a suitable alternative myself. New: Workaround for some strange read problem. Added ready check before command issueing. Added PCMCIA speed check tool. Added read/write check tool. A word on hardware: you will need a special adapter card labelled "CompactFlash to PCMCIA", to "PC Card" or to "ATA". It looks like a normal 5mm PCMCIA card with a smaller slot for CF cards at the front side. There are two types of such adapters sold in good computer stores, for "CF Type 1" and "CF type 2" cards. The only two differences: "CF Type 2" adapters can also cope with thicker CF cards, like those expensive "MicroDrive" harddisks; and b) they cost more. Mine is a "CF Type 1" which I got for EUR 10 (but I also saw the same model for the double price...). Some testing results: I have two CF cards, 16 and 64 Mbyte of capacity. 16Mbyte card (Hitachi): 1.0 Mb/s read, 600 kb/s write. 64Mbyte card (PQI): 1.6 Mb/s read, 800 kb/s write. It seems that cfd does also work at least with *some* MultiMedia Card and Sony Memory Stick adapters. I cannot guarantee that, however. Still trying to find out by remote diagnosis... For now: Concerning Non-CF adapters, always *first* insert the memory card into the adapter, and *then* plug the adpter into the Amiga. Another word on hardware: Commodore back then introduced the Amiga PCMCIA port before (!) the official PCMCIA standard was released. As a consequence, it is not fully compatible. Your results may vary on your actual hardware combination, including memory card, adapter, Amiga model, its chipset revision, and accelerator board model. Thanks to the help of some of you, I managed to work around a few such comatibility pits. Others are still very mysteriously, and I´m not sure whether they can be fixed by software. WARNING: "CompactFlash" is (TM) by CompactFlash Association ;-) System requirements =================== * AMIGA 1200 or 600, OS 2.0+ * "CompactFlash to PCMCIA/ATA" adapter card, see adapter.jpg for an example * fat95 file system (disk/misc/fat95.lha) Installation ============ Copy cfd/devs/compactflash.device to DEVS: Have fat95 installed on your system. Mount the drive by double-clicking cfd/devs/CF0. If you run OS 3.5+: Copy cfd/def_CF0.info to both sys:prefs/env-archive/sys and env:sys. Problems ======== If some trouble occurs, like cards not recognized by cfd, please: * report exact hardware type. * mount CF0: if not already done. * insert that very card. * wait at least 1 second (yes, honestly). * take cfd/c/cfddebug and type into a shell cfddebug ram:cfdlog * send me the binary file just created (about 4 kbytes). I promise there are no passwords and such in it. In case there is another PCMCIA driver (eg. a network card driver) blocking the card socket, try setting the CF0 mountlist entry "Flags" to Flags = 1 /* enable "cfd first" hack */ . History ======= v1.01 02/2002 First experiments. v1.02 03/2002 Minimal exec command set to work with filesystems. v1.03 03/2002 Added auto-repeat for faulty CF cards. v1.04 03/2002 Removed numerous bugs. Added quiet shutdown if non-CF cards are inserted. v1.05 03/2002 Added TD64 and SCSI emulation support. v1.06 03/2002 Card interface moved to PCMCIA I/O address space. v1.07 04/2002 Added debug tool and disk icon. v1.08 04/2002 Changed interrupt handling. Made read access a bit faster. v1.09 05/2002 Added "cfd first" hack. Added SCSI 6 byte read/write commands. v1.10 05/2002 Added PCMCIA status change handling. v1.11 06/2002 Fixed SCSI "Inquiry" command emulation. Set card programming voltage to 5VDC. v1.12 06/2002 Added slowed down transfer mode. Added PCMCIA speed check tool. v1.13 06/2002 Removed slowdown again, didn't fix the problem. Added "double read" and "double write" workarounds. Added read/write check tool. v1.14 07/2002 Removed "double write" kludge again (was unnecessary). Added ready check befor command issueing. Have Fun! --- und noch einmal auf deutsch ---------------------------- Verwendungszweck ================ Lesen und schreiben Sie ihre digitalen Fotos, mp3 Dateien usw. direkt von CompactFlash-Speicherkarten. Das in OS3.9 enthaltene "carddisk.device" konnte leider mit CF-Karten nichts anfangen. Ich wollte den schon gekauften PCMCIA-Adapter aber nicht abschreiben, also griff ich zur Selbsthilfe. Neu: Umgehung für ein seltsames Leseproblem hinzugefügt. Bereitschaftsprüfung vor Kommandosenden hinzugefügt. Testprogamme für PCMCIA Geschwindigkeit und Lesen/Schreiben hinzugefügt. Zum Thema Hardware: Sie brauchen eine spezielle Adapterkarte, genannt "CompactFlash auf PCMCIA", auf "PC Card" oder auf "ATA". Die sieht aus wie eine gewöhnliche 5mm PCMCIA Karte mit einem kleineren Einsteckschacht für CF Karten auf der Vorderseite. Im gut sortierten Computerhandel gibt es zwei verschiedene Ausführungen, für "CF Typ 1" und für "CF Typ 2". Letztere bieten nur zwei Unterschiede: a) sie eignen sich auch für dickere CF Karten, wie diese s**teuren "MicroDrive" Festplatten, und sie sind b) etwas teurer. Apropos Geld: mein "CF Typ 1" Adapter kam ca. EUR 10 (habe ich aber auch schon für den doppelten Preis gesehen...). Ein paar Testergebnisse: Ich habe zwei CF Karten, 16 und 64 Mbyte. 16 Mbyte (Hitachi): 1.0 Mb/s lesen, 600 kb/s schreiben. 64 Mbyte (PQI): 1.6 Mb/s lesen, 800 kb/s schreiben. Es scheint als ob zumindest *einige* Adapter für MultiMedia Karten und Sony Memory Stick ebenfalls mit cfd arbeiten. Dafür kann ich derzeit aber noch nicht garantieren. Bin noch dabei per Ferndiagnose herauszufinden was da läuft... Bis dahin: bei Nicht-CF Adaptern, bitte immer *zuerst* die Sppeicherkarte in den Adapter stecken, und *danach* den Adapter in den Amiga. Nochmal Hardware: Commodore hat seinerzeit den Amiga mit PCMCIA ausgestattet bevor (!) der offizielle PCMCIA Standard verabschiedet war. Dadurch ist die Amiga Version nicht 100% kompatibel. Ihre Ergebnisse können damit abweichen je nach den von Ihnen benutzten Komponenten - Speicherkarte, Adapter, Amiga Modell, dessen Chipsatz Version, und Turbokarte. Dank der Hilfe einiger Anwender konnte ich ein paar dieser Probleme per Software umgehen. Andere sind immer noch sehr seltsam, und ich bin nicht sicher ob sich alle nur durch geschicktere Programmierung allein aus der Welt schaffen lassen. WARNUNG: "CompactFlash" ist ein eingetragenes Warenzeichen der CompactFlash Association ;-) Systemvoraussetzungen ===================== * AMIGA 1200 oder 600, OS 2.0+ * "CompactFlash auf PCMCIA/ATA" Adapter-Karte, wie z.B. meine (adapter.jpg) * fat95 Dateisystem (disk/misc/fat95.lha) Installation ============ Kopieren Sie cfd/devs/compactflash.device nach DEVS: Installieren Sie ggf. fat95 nach. Melden Sie das Laufwerk an duch Doppelklicken auf cfd/devs/CF0. Wenn Sie OS 3.5+ benutzen, kopieren Sie noch cfd/def_CF0.info nach sys:prefs/env-archive/sys und env:sys. Probleme ======== Bei Problemen, wie einer nicht erkannten Karte, bitte: * Geben Sie die genauen Hardwaretypen an. * Melden Sie CF0: an wenn nicht schon geschehen. * Legen Sie die betreffende Karte ein. * Warten Sie mindestens 1 Sekunde (ja wirklich ;) * Nehmen Sie cfd/c/cfddebug und tippen Sie in eine Shell cfddebug ram:cfdlog * Schicken Sie mir die soeben erzeugte Binärdatei (ca. 4 kbyte). Es sind keine Paßwörter oder so etwas drin, versprochen. Falls ein anderer PCMCIA Treiber (z.B. für eine Netzwerkkarte) den Kartenschacht blockiert, ändern Sie doch mal in der CF0 MountList den Eintrag "Flags" in Flags = 1 /* "cfd zuerst" Hack aktivieren */ . Geschichte ========== v1.01 02/2002 Erste Versuche. v1.02 03/2002 Brauchbare Version für Zusammenarbeit mit Dateisystem. v1.03 03/2002 Automatische Wiederholungen hinzugefügt für fehlerhafte CF Karten. v1.04 03/2002 Zahlreiche Fehler behoben. Treiber deaktiviert sich selbst bei Nicht-CF Karten. v1.05 03/2002 TD64 und SCSI Emulation hinzugefügt. v1.06 03/2002 Kartenzugriffe über PCMCIA I/O Adressen umgeleitet. v1.07 04/2002 Ferndiagnosemodul und Disk Icon hinzugefügt. v1.08 04/2002 Veränderte Interruptverarbeitung. Lesezugriffe etwas schneller. v1.09 05/2002 "cfd zuerst" Hack hinzugefügt. SCSI 6 byte Lese/Schreibkommandos hinzugefügt. v1.10 05/2002 PCMCIA Statusänderungsbearbeitung hinzugefügt. v1.11 06/2002 Fehler im SCSI "Inquiry" Kommando behoben. Kartenprogrammierspannung auf 5V eingestellt. v1.12 06/2002 Gebremsten Übertragungsmodus hinzugefügt. PCMCIA Geschwindigkeitstester hinzugefügt. v1.13 06/2002 Bremse wieder ausgebaut, hatte nicht geholfen. "Doppellesen" und "Doppelschreiben" Fehlerumgehung hinzugefügt. Lese/Schreibtester hinzugefügt. v1.14 07/2002 "Doppelschreiben" wieder entfernt weil unnötig. Bereitschaftsprüfung vor Kommandosenden hinzugefügt. Viel Spaß! PS. Ich bin auf der Suche nach einer Voll- oder Teilzeitbeschäftigung im Raum Hanau, Frankfurt(M). Meine Fähigkeiten reichen von C/C++/M68k Assemblerprogrammierung über Netzwerkadministration und PC-Technik bis hin zu Kommunikations-, Industrie- und Unterhaltungselektronik. Wenn Sie also jemanden kennen der jemanden kennt, ich freue mich über jede Bewerbungsadresse :-) Ist natürlich nicht Bedingung um cfd zu nutzen ;-)