Brick Rigs math vehicle object file specification v 1.0. 1. Terminology "byte" must be 1 byte long (uint8_t in C) "word" must be 2 bytes long (uint16_t in C) "int" must be 4 bytes long (uint16_t in C) 2. Global header First comes global header which has following structure: struct { byte magic[4]; byte architecture[2]; word symbols_number; } Where: magic must equal to 0x1 'B' 'M' 'O' architecture is defined per implementation symbols_number is the amount of symbols 3. Symbols First comes the header: struct { byte type; int name_offset; byte name_lenght; int data_offset; byte data_lenght; } Where: type is equal to 0x1 which defines function or 0x2 which defines variable name_lenght is equal to the lenght of the name of the symbol + 1 data_lenght is equal to the data lenght of the symbol After that comes the ASCII terminated by 0x0 set of lenght of name_lenght, which defined name of the symbol