# DataTypes

Amiga DataTypes ist ein System, das mit der Version 3.0 des AmigaOS eingeführt wurde. Es ermöglicht das Lesen, Anzeigen und Schreiben verschiedener Dateiformate wie Bilder, Texte, Musik und Videos mittels einer standardisierten, objektorientierten Programmierschnittstelle (BOOPSI). Zum Anzeigen von DataTypes-unterstützten Dateiformaten lieferte Commodore ab AmigaOS 3.0 das Programm MultiView aus.

## Historische Entwicklung

Das Amiga DataTypes-System wurde 1992 mit der Einführung von AmigaOS 3.0 durch Commodore erstmals vorgestellt. Ziel war es, eine einheitliche und erweiterbare Schnittstelle zur Handhabung unterschiedlichster Dateiformate zu schaffen. Diese Neuheit ermöglichte es, Dateien unabhängig von ihrem spezifischen Format zu verarbeiten und anzuzeigen.
Ein besonderes Merkmal war die zentrale Erkennung und Verarbeitung verschiedener Dateiformate durch das Betriebssystem. Dies bedeutete, dass Anwendungen diese Funktionalität automatisch nutzen konnten, ohne dass zusätzliche relevante Bibliotheken eingebunden werden mussten. Diese innovative Lösung vereinfachte die Entwicklung von Anwendungen erheblich und stellte sicher, dass verschiedene Dateiformate konsistent gehandhabt wurden.
In den folgenden Jahren wurde das DataTypes-System kontinuierlich weiterentwickelt:
* 1994: Mit AmigaOS 3.1 wurden neue Funktionen und eine größere Stabilität eingeführt. Dies ermöglichte eine bessere Unterstützung weiterer Dateiformate und erhöhte die Flexibilität des Systems.
* 1999: Mit der Veröffentlichung von AmigaOS 3.5 wurde die Integration von DataTypes weiter verbessert und neue, modernere DataTypes wie PNG- und MP3-Unterstützung hinzugefügt. Dies zeigte die Anpassungsfähigkeit des Systems an die sich ständig verändernden Multimedia-Anforderungen.
* 2000: AmigaOS 3.9 brachte zusätzliche Verbesserungen, einschließlich einer verbesserten Benutzeroberfläche und erweiterter Unterstützung für neue Dateiformate wie GIF und andere gängige Multimedia-Dateien.
* 2004: AmigaOS 4.0 führte eine umfassende Überarbeitung des DataTypes-Systems ein, um es besser mit der neuen Motorola PowerPC-Architektur kompatibel zu machen. Dies beinhaltete auch die Integration moderner Multimedia-Formate und eine verbesserte Performance.
* Heutiger Stand: Das DataTypes-System bleibt ein wesentlicher Bestandteil von AmigaOS und wird weiterhin gepflegt und erweitert, um aktuellen Anforderungen gerecht zu werden. Es ist ein Paradebeispiel für die Flexibilität und Nachhaltigkeit der Amiga-Plattform.

## Funktionsweise

Das DataTypes-System von AmigaOS basiert auf der datatypes.library, einer zentralen Programmbibliothek, die das Erkennen und Öffnen von Dateien unabhängig von ihrem Format ermöglicht. Dies wird durch zwei Hauptkomponenten realisiert: die DataTypes-Descriptoren und die DataTypes-Programmbibliotheken (*.datatype).

## DataTypes-Descriptor

Ein DataTypes-Descriptor enthält Informationen darüber, wie das System eine Datei einem bestimmten Dateiformat zuordnet. Dies geschieht in der Regel durch Angabe eines Namensmusters (z. B. #?.jpg für JPEG-Bilddateien). Zusätzlich können bis zu 64-Bytes an Daten im Descriptor gespeichert werden, die als Muster für die zu untersuchende Datei dienen.
Beginnt eine Datei z. B. mit den ASCII-Bytes FORM, kann es sich um eine IFF-Datei handeln, unabhängig vom Dateinamen. In Ausnahmefällen kann auch eine Funktion (geschrieben in m68k-Code) eingebunden werden, um komplexere Erkennungsmechanismen zu implementieren.

## DataTypes-Programmbibliothek

Jedes unterstützte Dateiformat wird durch eine spezifische Programmbibliothek (*.datatype) implementiert. Diese Bibliotheken enthalten den Code, der benötigt wird, um die jeweilige Datei zu lesen, darzustellen und zu schreiben. Zu den grundlegenden DataTypes, die mit AmigaOS 3.0 eingeführt wurden, gehören:
* picture.datatype (Bilder)
** ilbm.datatype: IFF-ILBM-Dateiformat
* text.datatype (Texte)
** ascii.datatype: ASCII-Texte mit Unterstützung von Steuersequenzen
* sound.datatype (Sound, Musik)
** 8svx.datatype: IFF-8SVX-Dateiformat
* animation.datatype (Videos)
** anim.datatype: IFF-ANIM-Dateiformat
* amigaguide.datatype (AmigaGuide)
Zusätzlich zu den oben genannten grundlegenden DataTypes gab es eine Vielzahl weiterer DataTypes, die von Drittentwicklern erstellt und in das System integriert wurden. Dies ermöglichte die Unterstützung einer breiten Palette von Dateiformaten. Es wurden Hunderte von DataTypes entwickelt, die Formate wie PNG, GIF, BMP, TIFF, MP3, WAV, MIDI und viele mehr abdeckten. Diese Vielseitigkeit machte das AmigaOS DataTypes-System zu einer äußerst leistungsfähigen und flexiblen Lösung für die Multimediaverarbeitung.
Durch dieses modulare und erweiterbare Design können neue Dateiformate leicht hinzugefügt werden, indem entsprechende Deskriptoren und Bibliotheken entwickelt und integriert werden.