AMOS Memory Bank

From Just Solve the File Format Problem
(Difference between revisions)
Jump to: navigation, search
(5 intermediate revisions by one user not shown)
Line 4: Line 4:
 
|extensions={{ext|abk}}
 
|extensions={{ext|abk}}
 
}}
 
}}
'''AMOS Memory Bank''' is a data format and file format associated with AMOS. See [[AMOS BASIC tokenized file]] for more information about AMOS.
+
'''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 [[AMOS Sprite Bank|sprite]] and [[AMOS Icon Bank|icon]] banks, using the [[AMOS AmBs]] container format. This format is used in [[AMOS BASIC tokenized file]]s.
 
Multiple memory banks may be combined, along with [[AMOS Sprite Bank|sprite]] and [[AMOS Icon Bank|icon]] banks, using the [[AMOS AmBs]] container format. This format is used in [[AMOS BASIC tokenized file]]s.
Line 35: Line 35:
 
|}
 
|}
  
==== AMOS Music Bank format ====
+
=== AMOS Music Bank ===
 
:''Main article: [[AMOS Music Bank]]
 
:''Main article: [[AMOS Music Bank]]
  
 
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.
 
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 format ====
+
=== AMOS AMAL Bank ===
  
 
This bank has the name "<samp>Amal&nbsp;&nbsp;&nbsp;&nbsp;</samp>". It contains instructions in AMOS Animation Language format.
 
This bank has the name "<samp>Amal&nbsp;&nbsp;&nbsp;&nbsp;</samp>". It contains instructions in AMOS Animation Language format.
  
==== AMOS Menu Bank format ====
+
=== AMOS Menu Bank ===
  
 
This bank has the name "<samp>Menu&nbsp;&nbsp;&nbsp;&nbsp;</samp>". It contains pull-down menu definitions.
 
This bank has the name "<samp>Menu&nbsp;&nbsp;&nbsp;&nbsp;</samp>". It contains pull-down menu definitions.
  
==== AMOS Data Bank format ====
+
=== 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.
 
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 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.
 
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 format ====
+
=== 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.
 
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.
Line 62: Line 62:
 
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.
 
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 format ====
+
=== AMOS Picture Bank ===
:''See also: [http://www.exotica.org.uk/wiki/AMOS_Pac.Pic._format AMOS Pac.Pic. format]''
+
:''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.
 
This bank has the name "<samp>Pac.Pic.</samp>" and is created with the Compact extension's <code>Pack</code> instruction.
  
==== AMOS Samples Bank format ====
+
=== 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:
 
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:
Line 100: Line 100:
  
 
== Specifications ==
 
== Specifications ==
* [http://alvyn.sourceforge.net/amos_file_formats.html#banks AMOS file formats]: AMOS Memory Bank formats
+
* [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)
  
 
[[Category:Amiga]]
 
[[Category:Amiga]]

Revision as of 17:52, 13 October 2018

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)
  • amostools - can convert Pac.Pic., Sprites and Icons to IFF ILBM, and convert Samples to IFF 8SVX format

Sample files

Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox