Amiga Assembly Library
A shared library for Commodore Amiga written in Motorola 68020 assembly language. Version 41.21 — Public Domain Software. Compatible with KickStart 3.0 and above.
This library can be used from both Assembly and C programs. It provides a wide range of utility functions organized into modules, from memory management to custom UI widgets.
Download Assembly Library v41.21 (ZIP) | Getting Started | View on GitHub
Modules Overview
The Assembly Library is organized into 8 modules, each providing specialized functionality:
Exec
Memory and list management utilities.
AllocNewList— Allocate and initialize a new Exec listAllocNode— Allocate and add a node to a listFreeList/FreeNode— Free lists and nodesFreeListName/FreeNodeName— Free named lists and nodesReAllocVec— Reallocate a memory vectorRevertMem— Reverse a memory region (byte, word, or longword)
DOS
File and volume operations.
Load/Save— Load and save files to/from memory buffersFileInfo— Retrieve aFileInfoBlockfor a given fileCheckFile— Validate a file and return error informationCheckSum— Compute a checksum on a bufferLineInput— Read a single line from a file handleUnitInfo— GetInfoDatafor a volume (free space, disk type, etc.)
Graphics
Graphics primitives and bitmap management.
AllocRastPort/CloneRastPort— Allocate or duplicate a RastPortNewAllocRaster— Allocate raster memoryAddBitPlanes/RemoveBitPlanes— Manage bitplanes in a BitMapDrawBox— Draw a filled or outlined boxDrawFrameState— Draw a framed state element (raised, recessed, etc.)EraseInternalRect— Erase the interior of a windowTextFmtRastPort— Formatted text rendering into a RastPort
Libraries
String processing, IFF support, and generic utilities.
ChangeChar— Replace occurrences of a character in a stringFilterChars— Filter characters from a string by rangeStringToUpper/StringToLower— Case conversion (locale-aware)ReAllocVec— Reallocate memory vectorsFindAIFFChunk/NextIFFChunk/TestAIFFChunk— AIFF/IFF chunk parsingUnPackerILBMBODY/UnPackerILBMCMAP— ILBM image unpacking
Math
Number format conversion routines.
Dec2Val/Hex2Val/Bin2Val— Convert decimal, hexadecimal, or binary strings to numeric valuesConvDec/ConvDecZ— Convert a value to a decimal string (with optional zero-padding)ConvHex— Convert a value to a hexadecimal stringConvBin— Convert a value to a binary string
Intuition & GadTools
High-level UI gadgets and requesters built on top of Intuition and GadTools.
AllocAsmRequest/FreeAsmRequest— Allocate and free custom requestersAsmRequest— Display a formatted requester dialogChangeAsmReqAttrs— Modify requester attributesFindAsmGadget— Find a gadget by nameSetAsmGadgetAttrs/GetAsmGadgetAttr— Set and get gadget attributesInterfaceInfo— Retrieve information about an interface
REI Interface
A custom windowing and interface management system. REI (Runtime Environment Interface) provides a structured way to manage windows, gadgets, and menus.
OpenREI/CloseREI— Open and close REI windowsOpenInterface/CloseInterface— Load and release interface definitionsActiveREI/FindREI— Find the active REI or locate one by nameLockREI/UnlockREI— Lock and unlock REI structuresWaitREIMsg— Wait for messages from a REI windowRefreshREI— Refresh a REI windowSetREIAttrs/GetREIAttrs— Set and get REI attributesAS_MenuAddress— Get the address of a menu item
C Interface
How to call the Assembly Library from C programs using SAS/C or compatible compilers. Includes the HookEntry glue function for callback support.
Key Features
- Pure 68020 assembly — Hand-optimized for the Motorola 68020 processor
- Shared library architecture — Standard Amiga shared library (placed in
LIBS:) - Auto-opens sub-libraries — When you open
assembly.library, it automatically opens and caches pointers tographics.library,intuition.library,dos.library,asl.library,gadtools.library,icon.library,workbench.library,datatypes.library,locale.library,lowlevel.library, andrealtime.library - Public Domain — No copyright restrictions; free to use, modify, and distribute
- Dual-language support — Callable from both 68k assembly and C
- KickStart 3.0+ compatible — Takes advantage of AmigaOS 3.0 features including locale support, datatypes, and GadTools
- REI windowing system — A high-level interface abstraction for building Amiga applications