Programming AmigaOS in C

Introduction

AmigaOS is a multi-tasking, shared library and device, even driven operating system for the Amiga family of computers based on the Motorola 680x0 or PowerPC processors. To write for AmigaOS you need to learn how to use Amiga's shared libraries. There are a number of shared libraries, some are located on the Kickstart ROM and some on disk in the LIBS: folder. Each library contains functions needed to perform particular functions such as disk i/o, graphics, sound, process management, memory management, keyboard/mouse and so on. More libraries are added as AmigaOS is updated, some libraries will not exist on older versions of AmigaOS.

Shared libraries differ from linked libraries is that shared libraries are not added to the program executable code like linked libraries are and thus will make AmigaOS programs small in size. So using shared libraries is more efficient. Details about the libraries can be found on the AmigaOS Wiki.

Library List

Library name Purpose AmigaOS
exec.library Process and memory management 1.3 (33)
dos.library Disk, file and folder management 1.3 (33)
graphics.library Graphics, sprites/bobs, pixel type graphics 1.3 (33)
intuition.library Screens, windows and gadgets processing 1.3 (33)
diskfont.library Bitmapor compugraphic font management 1.3 (33)
expansion.library Device expansion library 1.3 (33)
icon.library Workbench icon management 1.3 (33)
layers.library Graphic layer management 1.3 (33)
mathffp.library Mathematical Floating Point processing 1.3 (33)
mathieeesingtrans.library Mathematical Single Precision functions 1.3 (33)
mathieeedoubbas.library Mathematical IEEE double precision processing 1.3 (33)
mathieeedoubtrans.library Mathematical IEEE double precision trig functions 1.3 (33)
mathtrans.library Mathematical Single precision processing 1.3 (33)
translator.library Speech translator functions 1.3 (33)
asl.library Common file/font type dialog boxes 2.0
commodities.library Background commodity tool functions 2.0
gadtools.library New window and gadget functions 2.0
workbench.library Workbench functions 2.0
rexxsupport.library ARexx support functions 2.0
rexxsyslib.library ARexx system library functions 2.0
version.library Version information 2.0
iffparse.library IFF file parsing functions 2.0
utility.library Miscellaneous utility functions 2.0
keymap.library Keyboard mapping processing 1.3 (33)
datatypes.library File and data type processing 3.1
nonvolatile.library Non-volatile RAM managment (CD32) 3.1
realtime.library Realtime processing 3.1
lowlevel.library Low level keyboard/joystick/mouse functions 3.1
amigaguide.library AmigaGuide file library 3.1
aml.library Amiga Mail library 3.5
reaction.library Reaction window/gadgets functions 3.5
application.library Development and use of applications functions 4.1
camd.library Functions for MIDI devices and data 4.1
newlib.library Newlib standard C library 4.1
diskio.library High level api for disk and partition I/O 4.1
pthreads.library Threading functions for C programs 4.1

Third Party Libraries

AmigaOS supports additional third party libraries, which are stored in Libs:, to expand the functionality of AmigaOS and provide access to more APIs.

Library name Purpose Minimum AmigaOS
amissl.library Amiga SSL/TLS library (see Aminet) 3.0
asyncio.library For double buffered asyncronus file access (see Aminet) 3.0
bgui.library Boopsi Graphical User Interface (see Aminet) 2.0
boards.library List of autoconfig boards supported on Amiga (see Aminet) 1.2
bsdsocket.libray TCP/IP network library (see Networks) 3.0
cddb.library Compact Disc Database library (see Aminet) 3.5
codesets.library Handle different codesets for different languages and countries (see Aminet) 3.0
gtlayout.library GadTools Layout library (see Aminet) 3.9
ixemul.library BSD Unix emulation (see Aminet) 2.04
ixnet.library BSD Network emulation (see Networks) 2.04
MagicASL.library MUIfied ASL library replacement (see Aminet) 3.1
muimaster.library Magic user interface (see MUI on Github or SASG) 3.1
Picasso96API.library Picasso96 Retargetable graphics library (see GitHub) 3.1
SDL.library Simple direct media library (see Aminet or SourceForge) 3.0

 

Link Libraries

The number and the name of the link libraries supplied with Amiga C/C++ compilers differ although one common one is the amiga.lib which contains some common and useful functions not found elsewhere. There may be others including small.lib, debug.lib and for AmigaOS 3.5 or later reaction.lib.

Linker libs are compiled with your Amiga program source code and may make your programs bigger if used.

Next Page