AMOS Memory Bank

From Just Solve the File Format Problem
(Difference between revisions)
Jump to: navigation, search
m (Change telparia.com samples link to template)
m (Sample files)
 
(One intermediate revision by one user not shown)
Line 38: Line 38:
 
:''Main article: [[AMOS Music Bank]]
 
:''Main article: [[AMOS Music Bank]]
  
This bank has the name "<samp>Music
+
This bank has the name "<samp>Music&nbsp;&nbsp;&nbsp;</samp>" 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 "<samp>Amal&nbsp;&nbsp;&nbsp;&nbsp;</samp>". It contains instructions in AMOS Animation Language format.
 +
 
 +
=== AMOS Menu Bank ===
 +
 
 +
This bank has the name "<samp>Menu&nbsp;&nbsp;&nbsp;&nbsp;</samp>". It contains pull-down menu definitions.
 +
 
 +
=== AMOS Data Bank ===
 +
 
 +
This bank has the name "<samp>Datas&nbsp;&nbsp;&nbsp;</samp>". It is created in AMOS using the <code>Reserve As Data</code> instruction, and has no specific format.
 +
 
 +
=== AMOS Work Bank ===
 +
 
 +
This bank has the name "<samp>Work&nbsp;&nbsp;&nbsp;&nbsp;</samp>". It is created in AMOS using the <code>Reserve As Work</code> 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 "<samp>Asm&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</samp>". It contains Amiga machine code that was loaded into a bank using the <code>Pload</code> instruction and has no specific format, other than containing MC680x0 binary code.
 +
 
 +
The <code>Pload</code> 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 <code>Call</code> 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 <code>Areg()</code> and <code>Dreg()</code> arrays. Extra parameters can also be included with the <code>Call</code> 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 "<samp>Pac.Pic.</samp>" and is created with the Compact extension's <code>Pack</code> instruction.
 +
 
 +
=== AMOS Samples Bank ===
 +
 
 +
This bank has the name "<samp>Samples </samp>" 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:
 +
 
 +
{|class="wikitable"
 +
!Field!!Length
 +
|-
 +
|Count of samples
 +
|2 bytes
 +
|-
 +
|32-bit offset to each sample, relative to the <var>count of samples</var> field above
 +
|<var>count of samples</var> * 4 bytes
 +
|}
 +
 
 +
The format of each sample is as follows:
 +
 
 +
{|class="wikitable"
 +
!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 ==
 +
* [https://www.exotica.org.uk/wiki/AMOS_file_formats#Regular_memory_bank_format AMOS file formats &rarr; Regular memory bank format]
 +
 
 +
== Software ==
 +
* [https://github.com/dschwen/amosbank amosbank] - Can convert "Samples Bank" to [[WAV]] format (among other things)
 +
* [https://github.com/kyz/amostools amostools] - can convert Pac.Pic., Sprites and Icons to IFF ILBM, and convert Samples to IFF 8SVX format
 +
 
 +
== Sample files ==
 +
* [http://cd.textfiles.com/amospd/076-100/APD082/amal.abk amal.abk] (AMAL)
 +
* [http://cd.textfiles.com/amospd/001-025/APD002/Raw_Samples/Feet_Sample.Abk Feet_Sample.Abk] (Data)
 +
* [http://cd.textfiles.com/zoom2/graphics/misc/procad/profiles/zoom.abk zoom.abk] (Asm)
 +
* [http://cd.textfiles.com/amigaformat/aformat-13-199704/-ScreenPlay-/Shareware/Checkers1.1/Sound.abk Sound.abk], [http://cd.textfiles.com/amospd/001-025/APD009/DEMO_SAM.ABK DEMO_SAM.ABK] (Samples)
 +
* {{DexvertSamples|audio/amosSamples}}
 +
 
 +
[[Category:Amiga]]

Latest revision as of 03:22, 28 December 2023

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

[edit] 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.

[edit] 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

[edit] 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.

[edit] AMOS AMAL Bank

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

[edit] AMOS Menu Bank

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

[edit] 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.

[edit] 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.

[edit] 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.

[edit] 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.

[edit] 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

[edit] Specifications

[edit] Software

  • amosbank - Can convert "Samples Bank" to WAV format (among other things)
  • amostools - can convert Pac.Pic., Sprites and Icons to IFF ILBM, and convert Samples to IFF 8SVX format

[edit] Sample files

Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox