AMOS Memory Bank
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[hide] |
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
- amal.abk (AMAL)
- Feet_Sample.Abk (Data)
- zoom.abk (Asm)
- Sound.abk, DEMO_SAM.ABK (Samples)
- https://telparia.com/fileFormatSamples/audio/amosSamples/