Introduction

This file is an unofficial description of the MBM file format. It is not a complete description, as there are some parts of the format that I do not understand.

Psion have no connection with this this help file. Do not contact Psion with regard to this file, contact me at the email address shown in the about topic.

I have written this file for my own use, as a programming aide, and have made it publicly available as others may find it useful. I would welcome any comments regarding the accuracy of my interpretation of this file format, particularly from 'official' sources.

MBM file format

About the author


PG2
MBM file format

Unofficial and incomplete.

Please note that the terms used for describing different parts of a file are my own, and probably will not agree with any 'official' file format description, if and when it becomes available.

A MBM file begins with an 20 byte header of the following form:

Offset  0 to  15:    Unknown

Offset  16 (long):  Offset of File information table

This header is then followed by the Bitmaps.

Each bitmap is preceded by a Bitmap descriptor record

After the final bitmap comes the File information table

Below is a partial screen shot from a hex editor I am writing. It shows a small 16 colour bitmap (24 x 24 pixels).

Click on any of the descriptive boxes for further information.


PG3
About the author

Any comments regarding this document can be sent to rbenno@cix.compulink.co.uk.

For other Psion related software written by me visit

http://ourworld.compuserve.com/homepages/RWakelin

This file was created using Edit Help v 1.41

Go to http://ourworld.compuserve.com/homepages/PeterBalch to download the latest version.


PG4
Unknown

I have not been able to determine the meaning of this part of the file.


PG5
File information table

The file information table contains records detailing...

•	The number of bitmaps in the file.

•	The offsets to each bitmap's descriptor record.

The file information table takes the form

Offset 0 (long): the number of bitamps in a file.

Offset 4 (long): Offset of the first bitmap descriptor record, followed by the offsets to each subsequent bitmap descriptor record.


PG6
Bitmap descriptor record

This record contains information about an individual bitmap including, bitmap size, bits per pixel, width of bitmap and height of bitmap.


PG7
Bitmap

An MBM (Multi bitmap) file may contain one, or many diferent bitmaps.


PG8
Bits per pixel

Offset  24 (long) of bitmap descriptor record.

Possible values are 02h or 04h (2 or 4 decimal)

02h = 2 bits per pixel (4 colours or grey scales)

04h = 4 bits per pixel (16 colours or grey scales)

All values are stored in the file using Little endian format


PG9
Little endian format

Intel processors use the little endian format, meaning that a word or double word always starts with the low-order byte and ends with the high-order byte.

This means that a word variable having a value of 1 or 00000000 00000001 in binary is stored in memory or on disk as 00000001 00000000.

A double word ( or long) variable having a value of 55 or 00000000 00000000 00000000 00110111 in binary is stored in memory or on disk as 00110111 00000000 00000000 00000000.


PG10
File header

The area shaded cyan is the 20 byte file header.


PG11
Bitmap size

Offset 0 (long) of bitmap descriptor record.

Size of bitmap, including bitmap descriptor record. In this case B3h (179 bytes).

All values are stored in the file using Little endian format


PG12
Bitmap descriptor record

The area shaded light green is a 40 byte Bitmap descriptor record.


PG13
Bitmap data

The unshaded area is the data that represents the actual Bitmap. In this case a compressed MBM file containing a single 24 x 24 pixel bitmap.


PG14
File information table

The area shaded yellow is the File information table.


PG15
Number of bitmaps in file

Offset 0 (long) of the file information table.

The number of bitmaps in a file, in this case 1.


PG16
Offset of bitmap descriptor record

Offset 4 (long) of the file information table.

Offset of bitmap descriptor record, in this case bitmap 1.

Files containing more than one bitmap have a bitmap descriptor record for each bitmap. the offsets to these records start at offset 4 of the file information table and take the form..

Offset 1(long), Offset 2(long), Offset 3(long), Offset 4(long).........


PG17
Width of bitmap

Offset 8 (long) of bitmap descriptor record.

Width of bitmap in pixels. In this case 18h (24 pixels).

All values are stored in the file using Little endian format


PG18
Height of bitmap

Offset 12 (long) of bitmap descriptor record.

Height of bitmap in pixels. In this case 18h (24 pixels).

All values are stored in the file using Little endian format


PG19
Offset of file information table

Offset 16 (long) of file header.

Offset of File information table