AMOS Memory Bank

From Just Solve the File Format Problem
Revision as of 21:19, 7 January 2016 by Jsummers (Talk | contribs)

Jump to: navigation, search
File Format
Name AMOS Memory Bank
Ontology
Extension(s) .abk

AMOS Memory Bank is a data format and file format associated with AMOS. See AMOS BASIC tokenized file for more information about AMOS.

Multiple memory banks may be combined, along with sprite and icon banks, using the AMOS AmBs container format. This format is used in AMOS BASIC tokenized files.

Contents

Disambiguation

"AMOS Memory Bank" can mean just "AmBk"-tagged banks, or it can be an umbrella term that also includes AMOS Sprite Bank ("AmSp") and AMOS Icon Bank ("AmIc"). Careful writers may prefer the term "AMOS Bank", instead of "AMOS Memory Bank", when referring to all types of AMOS banks.

Format details

Field Length
ASCII identifier AmBk 4 bytes
Bank number (1-15) 2 bytes
Memory type: 0 for chip memory, 1 for fast memory 2 bytes
Bank length (bits 27-0). Bits 28 and 29 are undefined, not part of the length field. Bit 30 means "try chip memory", bit 31 means "try fast memory" if set 4 bytes
Bank name. Unterminated ASCII text padded with spaces 8 bytes
Bank data bank length - 8 bytes

AMOS Music Bank format

Main article: AMOS Music Bank

This bank has the name "Music   " and is created with various conversion utilities shipped with AMOS. It is played back with the Music extension.

AMOS AMAL Bank format

This bank has the name "Amal    ". It contains instructions in AMOS Animation Language format.

AMOS Menu Bank format

This bank has the name "Menu    ". It contains pull-down menu definitions.

AMOS Data Bank format

This bank has the name "Datas   ". It is created in AMOS using the Reserve As Data instruction, and has no specific format.

AMOS Work Bank format

This bank has the name "Work    ". It is created in AMOS using the Reserve As Work instruction, and has no specific format. As a Work bank, it is not saved as part of the source code, unlike normal data banks.

AMOS Asm Bank format

This bank has the name "Asm     ". It contains Amiga machine code that was loaded into a bank using the Pload instruction and has no specific format, other than containing MC680x0 binary code.

The Pload instruction takes the first code hunk out of an Amiga executable and copies it into the bank, without even applying its relocations, therefore all code needs to use PC-relative addressing. The Call instruction jumps directly to the start of the bank. The registers (A0, A1, D0, D1, ...) can be set in preparation for a call by setting the Areg() and Dreg() arrays. Extra parameters can also be included with the Call instruction, these are made available to the called function via a stack pointed to by the A3 register.

AMOS Picture Bank format

Main article: AMOS Picture Bank

This bank has the name "Pac.Pic." and is created with the Compact extension's Pack instruction.

AMOS Samples Bank format

This bank has the name "Samples " and is created with the Sample Bank Editor shipped with AMOS. The samples can be played back with the Music extension. The format of the bank data is as follows:

Field Length
Count of samples 2 bytes
32-bit offset to each sample, relative to the count of samples field above count of samples * 4 bytes

The format of each sample is as follows:

Field Length
Sample name, in ISO-8859-1 8 bytes
Sample frequency in Hertz 2 bytes
Sample length in bytes 4 bytes
Sample data: twos complement 8-bit signed PCM samples varies

Specifications

Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox