84555 packages online


No screenshot available
Short:use CompactFlash cards in PCMCIA slot
Author:t.jager at (Torsten Jager)
Uploader:t jager gmx de (Torsten Jager)
Kurz:CF-Speicherkarten im PCMCIA-Slot nutzen
Download: - View contents


(deutsche Beschreibung siehe unten - german description see below)

$VER: compactflash.device 1.32 (18.11.2009)

--- english section ----------------------------------------


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.


Finally I put this under LGPL :-))
Not plain GPL because an Amiga device driver is primarily used
by the non-free OS to extend its functionality. Thus bundling the 2
should be possible.
The preassembled binaries serve to make plain users life easier but
you may rebuild them yourself now with AsmOne or something like that.

Added transfer mode autoconfiguration.
Major API rework and optimizations for use in kickstart ROMs.
Added more detailled error messages.

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:
16Mbyte card (Hitachi): 1.0 Mb/s read, 600 kb/s write.
64Mbyte card (PQI): 1.4 Mb/s read, 1.0 Mb/s write.
128 Mbyte card (Samsung): 2.1 Mb/s read, 1.4 Mb/s write.
2Gbyte card (Sandisk): 2.1 Mb/s read, 1.7 Mb/s write.
4Gbyte card (Kingston): 2.2 Mb/s read, 1.9 Mb/s write.

Good news everyone:

I got positive testing reports from CompactFlash, IBM MicroDrive,
Sony MemoryStick and - taadaa! - SmartMedia adapter :^))
It may be required to re-insert the adapter after plugging the
memory card into it. Only for CompactFlash and MicroDrive,
the plugging order is irrelevant.

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.
In any case, your adapter MUST support old 16bit PC-CARD
mode. Models who are 32bit CARDBUS only won`t work.

In conjunction with aminet/disk/misc/fat95.lha v3.09+,
cfd can now use CF card`s built-in erase function if available.
Erase is performed by the card implicitely on writes, but
some cards remember the erased state and do faster write
cycles afterwards. See also the fat95/english/readme.too file
on that purpose.

Besides the usual AmigaOS error codes, there are some
additional ones:

  73        Miscellanous Error
  96        Invalid Command
  97        Invalid CHS Address (Head or Sector number wrong)
  111        Invalid LBA Address (too large)
  117, 118    Supply or generated voltage out of tolerance
  81        Uncorrectable checksum
  88        Corrected read error
  69, 112-116, 119, 126    Self test or diagnosis failed
  80, 84    Sector ID not found
  122        Spare sectors exhausted
  95        Data transfer error, command aborted
  76, 120, 123, 124, 127 Media format corrupt
  67        Write or erase failed
  98        Command needs more supply power than currently allowed
  103        Media is write protected

"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)


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/ to both sys:prefs/env-archive/sys and env:sys.


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 */

Damaged or simply not quite officially standardized cards may sometimes
cooperate using

    Flags = 2    /* skip invalid PCMCIA signature */


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.

v1.15    08/2002    Added ATAPI support.

v1.16    08/2002    Added transfer mode testing module.
                    Set word access as default.

v1.17    08/2002    Added transfer mode autosense.
                    Disabled card´s address decoder.

v1.18    09/2002    Added "forced card socket activation" hack.

v1.19    10/2002    New option: accept cards without valid signature.

v1.20    10/2002    Fixed ATAPI bug.
                    Added spinup from standby mode.

v1.21    04/2003    Fixed "multiple mode" bug.
                    Added "write multiple" support.
                    Added PCMCIA soft reset.
                    Added CFA_ERASE support.

v1.22    05/2003    Added alternative card socket resetting code.

v1.23    06/2003    Added IDE interrupt enabling.

v1.24    10/2003    Trying to add support for a certain CDROM adapter,
                    who unfortunately turned out to be CARDBUS.

v1.25    07/2004    Added interrupt watchdog, avoiding occasional

v1.27    02/2009    Added fast interrupt support for Kingston and similar cards.

v1.28    04/2009    First attempt to make cfd ROMable.

v1.29    11/2009    Added transfer mode autoconfiguration.
                    New "dd" version including speed gauge and performance test.

v1.30    11/2009    Major API rework and optimizations for use in kickstart

v1.31    11/2009    Fixed bug in "memory mapped" mode.
                    Further optimizations.

v1.32    11/2009    Added more detailled error messages.
         04/2014    Removed "dd" as it is part of "fat95".
                Finally made this open source.

Have Fun!

--- und noch einmal auf deutsch ----------------------------


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.


Endlich: cfd unter LGPL :-))
Keine einfache GPL weil ein Gerätetreiber hauptsächlich vom unfreien
Betriebssystem benutzt wird um dessen Funktionalität zu erweitern. Es
sollte also möglich sein beides gemeinsam zu vertreiben.
Die vorassemblierten Binärdateien sollen normalen Anwendern das Leben
erleichtern, aber jetzt kann sie ja jeder auch selbst neu bauen mit
AsmOne oder etwas Ähnlichen.

Automatische Übertragungsmoduswahl hinzugefügt.
Programmierschnittstelle überarbeitet und optimiert für
Verwendung in Kickstart ROMs.
Detailiertere Fehlermeldungen 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:
16 Mbyte (Hitachi): 1.0 Mb/s lesen, 600 kb/s schreiben.
64 Mbyte (PQI): 1.4 Mb/s lesen, 1.0 Mb/s schreiben.
128 Mbyte (Samsung): 2.1 Mb/s lesen, 1.4 Mb/s schreiben.
2Gbyte (Sandisk): 2.1 Mb/s lesen, 1.7 Mb/s schreiben.
4Gbyte (Kingston): 2.2 Mb/s lesen, 1.9 Mb/s schreiben.

Gute Neuigkeiten:
ich habe erfolgreiche Testberichte mit CompactFlash, IBM
MicroDrive, Sony MemoryStick und - tata! - SmartMedia
Adaptern :^))
Es kann erforderlich sein den Adapter nach dem Einsetzen
der Speicherkarte in den selbigen nochmals in den Amiga
einzustecken. Nur bei CompactFlash und MicroDrive ist
die Steckreihenfolge egal.

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.
In jedem Fall MUSS Ihr Adapter den alten 16bit PC-CARD
Modus unterstützen. Varianten ausschließlich für 32bit
CARDBUS funktionieren nicht am Amiga.

In Verbindung mit aminet/disk/misc/fat95.lha v3.09+ können
Sie jetzt auch die eingebaute Löschfunktion von CF-Karten
nutzen. Die Karten löschen sich zwar bei Schreibzugriffen
implizit selbst, einige Exemplare merken sich aber wenn sie
vorher bereits gelöscht wurden und erlauben dann
entsprechend schnelleres Schreiben.
Siehe dazu auch fat95/deutsch/liesmich.auch.

Neben den üblichen AmigaOS Fehlercodes gibt es noch
diese spezielleren:

  73        Diverse Fehler
  96        Ungültiges Kommando
  97        Ungültige CHS Adresse (Kopf- oder Sektornummer falsch)
  111        Ungültige LBA Adresse (zu groß)
  117, 118    Betriebsspannung oder daraus erzeugte Spannung außerhalb der
  81        Nicht korrigierbarer Prüfsummenfehler
  88        Korrigierter Lesefehler
  69, 112-116, 119, 126    Selbsttest oder Selbstdiagnose fehlgeschlagen
  80, 84    Sektorkennung nicht gefunden
  122        Ersatzsektoren aufgebraucht
  95        Übertagungsfehler, Kommando abgebrochen
  76, 120, 123, 124, 127 Formatierung beschädigt
  67        Schreiben oder Löschen fehlgeschlagen
  98        Kommando braucht mehr Strom als derzeit freigegeben
  103        Medium ist schreibgeschützt

"CompactFlash" ist ein eingetragenes Warenzeichen der
CompactFlash Association ;-)


* 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)


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/ nach sys:prefs/env-archive/sys und env:sys.


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 */

Bei beschädigten oder einfach nicht ganz so standardtreuen
Karten hilft mitunter

    Flags = 2    /* ungültige PCMCIA Signatur übergehen */


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.

v1.15    08/2002    ATAPI Unterstützung hinzugefügt.

v1.16    08/2002    Zugriffsmodus-Tester eingebaut.
                    Standardmäßig wortweise Zugriffe.

v1.17    08/2002    Automatische Auswahl des Zugriffsmodus.
                    Internen Adreßdecoder der Karte ausgeschaltet.

v1.18    09/2002    Neue Option: Kartenschacht zwangseinschalten.

v1.19    10/2002    Neue Option: Karten mit ungültiger Signatur akzeptieren.

v1.20    10/2002    Fehlerkorrektur für ATAPI-Modus.
                    Anlaufsequenz für geparkte Festplatten hinzugefügt.

v1.21    04/2003    Fehlerkorrektur für schnellen Übertragungsmodus.
                    "Schnell schreiben" hinzugefügt.
                    PCMCIA "soft reset" hinzugefügt.
                    CFA_ERASE Unterstützung hinzugefügt.

v1.22    05/2003    Alternativen Rücksetzcode eingebaut.

v1.23    06/2003    IDE Interruptfreigabe hinzugefügt.

v1.24    10/2003    Versuch der Unterstützung eines CDROM Adapters,
                    dieser stellte sich jedoch als 32bit CARDBUS Version heraus.

v1.25    07/2004    Interruptwächter hinzugefügt, hilft gegen gelegentliche

v1.27    02/2009    Unterstützung für neuere Kingston und ähnliche Karten

v1.28    04/2009    Erster Versuch eines Kickstart ROM tauglichen cfd.

v1.29    11/2009    Automatische Übertragungsmoduswahl hinzugefügt.
                    Neue "dd" Version mit Tacho und Geshwindigkeitstest.

v1.30    11/2009    Programmierschnittstelle überarbeitet und optimiert für
                    Verwendung in Kickstart ROMs.

v1.31    11/2009    Fehler in Hauptspeicher-Übertragungsmodus behoben.
                    Weitere Optimierungen.

v1.32    11/2009    Detailiertere Fehlermeldungen hinzugefügt.
         04/2014    "dd" entfernt, weil in "fat95" enthalten.
                    Ab jetzt quelloffen.

Viel Spaß!

Contents of driver/media/cfd.lha
---------- ----------- ------- ------- ------ ---------- ------------ ----------
[generic]                 1360    1694  80.3% -lh5- 8308 Apr 19  2002
[generic]                48688   48688 100.0% -lh0- 1172 Jul 17  2002 cfd/adapter.jpg
[generic]                 2336    2925  79.9% -lh5- e3ec Apr 19  2002 cfd/
[generic]                 1357    1694  80.1% -lh5- 336b Jul 11  2002 cfd/
[generic]                  615     812  75.7% -lh5- 7f7c Apr  4  1980 cfd/c/cfddebug
[generic]                 1116    1708  65.3% -lh5- 5584 Aug 29  2002 cfd/c/pcmciacheck
[generic]                  761     976  78.0% -lh5- 38ad Nov  4  2009 cfd/c/pcmciaspeed
[generic]                 7054   16908  41.7% -lh5- ff40 Apr  4  1980 cfd/cfd.readme
[generic]                 2315    2941  78.7% -lh5- 5ac8 Apr 19  2002 cfd/
[generic]                 9643   26526  36.4% -lh5- 880c Mar  1  1980 cfd/COPYING
[generic]                 1695    1958  86.6% -lh5- da76 Mar 30  2002 cfd/
[generic]                 1358    1694  80.2% -lh5- fe1c Apr 19  2002 cfd/
[generic]                  237     420  56.4% -lh5- 612b Oct 19  2002 cfd/devs/CF0
[generic]                 1460    2431  60.1% -lh5- 81de Apr 19  2002 cfd/devs/
[generic]                 5123    8280  61.9% -lh5- 722a Dec 31  1980 cfd/devs/compactflash.device
[generic]                21546   76093  28.3% -lh5- 1818 Apr  4  1980 cfd/src/cfd132.s
[generic]                 4056   10060  40.3% -lh5- c296 Apr  4  1980 cfd/src/cfddebug.s
[generic]                 6251   18850  33.2% -lh5- 54f1 Apr  4  1980 cfd/src/pcmciacheck.s
---------- ----------- ------- ------- ------ ---------- ------------ ----------
 Total        18 files  116971  224658  52.1%            Apr  5  2014

Aminet © 1992-2024 Urban Müller and the Aminet team. Aminet contact address: <aminetaminet net>