AMOS Memory Bank

From Just Solve the File Format Problem
(Difference between revisions)
Jump to: navigation, search
m (Format details)
(Software)
Line 101: Line 101:
 
== Specifications ==
 
== Specifications ==
 
* [http://alvyn.sourceforge.net/amos_file_formats.html#banks AMOS file formats]: AMOS Memory Bank formats
 
* [http://alvyn.sourceforge.net/amos_file_formats.html#banks AMOS file formats]: AMOS Memory Bank formats
 +
 +
== Software ==
 +
* [https://github.com/dschwen/amosbank amosbank] - Can convert "Samples Bank" to [[WAV]] format (among other things)
  
 
== Sample files ==
 
== Sample files ==

Revision as of 17:04, 2 February 2016

File Format
Name AMOS Memory Bank
Ontology
Extension(s) .abk

AMOS Memory Bank is a resource 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

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

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

AMOS Menu Bank

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

AMOS Data Bank

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

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

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

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

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

Software

  • amosbank - Can convert "Samples Bank" to WAV format (among other things)

Sample files

Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox