AmigaIcon {AmigaFFH} R Documentation

## The S3 AmigaIcon class

### Description

A comprehensive representation of an Amiga Workbench icon file.

### Details

Files, directories and other similar objects were depicted as icons on the Amiga Workbench (the Amiga's equivalent of what is now mostly known as the computer's desktop). Icons were actually separate files with the exact same name as the file or directory it represents, except for an additional ‘.info’ extension.

In addition of being a graphical representation of files or directories, icon files also contained additional information about the file. It could for instance indicate which tool would be required to open the file.

The classic Amiga Workbench icon file has a rather complex structure as it is basically a dump of how it is stored in memory. As a result it contains many memory pointers that are really not necassary to store in a file.

The S3 AmigaIcon class is used to represent these complex files as a named list. The elements in that list have mostly identical names as listed in the document at the top referenced below. The names are usually self-explanatory, but the referred documents can also be consulted to obtain more detailed information with respect to each of these elements. As pointed out earlier, not all elements will have a meaningful use.

It is possible to change the values of the list, but not all values may be valid. Note that they will not be fully checked for validity. Invalid values may result in errors when writing to a binary file using write.AmigaIcon, or may simply not work properly on an Amiga or in an emulator.

The original ‘.info’ file could be extended with NewIcon or with an OS3.5 IFFChunk data, that allowed for icons with larger colour depths. These extensions are currently not implemented.

Use simpleAmigaIcon for creating a simple AmigaIcon object which can be modified. Use read.AmigaIcon to read, and write.AmigaIcon to write workbench icon files (*.info). With rawToAmigaIcon and as.raw AmigaIcon can be coerced back and forth from and to its raw (binary) form.

Pepijn de Vries

### References

Other AmigaIcon.operations: rawToAmigaIcon(), read.AmigaIcon(), simpleAmigaIcon(), write.AmigaIcon()