# Assembler configuration files These files are used by the [assembler][assembler] to use custom MMU mappings in the resulting [bytecode file][bin_file]. ## File format This file is a text file for ease of creation on the calculator. It is parsed by splitting it around the UNIX newline character, and numbers are written in hex without prefix. ### First line The first line represents the entry point, which is the address of the first instruction to be executed by the [processor][proc]. ### Second line The second line contains the offset at which the code is located in RAM, as seen by the [assembler][assembler]. ### Subsequent lines All subsequent lines are individual segment information, with the first line being the type, **in decimal**. ### Common data Second line of a block is the access code, which is a combination (binary OR) of these access codes: `4`: read `2`: write `3`: execute Third line is the offset at which the segment will reside in RAM. Fourth line is the length of the block in RAM. ## Block types Block type 0 represents the ROM, which is just the contents of the [bytecode file][bin_file], excluding the header. Block type 1 represents RAM, which will be zeroed-out before being mapped. Block type 2 represents the stack, which can be mapped in RAM. Block type 3 represents a file to be linked recursively. Beware, as infinite loops will **not** be detected. Block type 4 represents a file to be mapped directly. Beware, as a `RW` file will actually be written to disk on memory write. Block type 5 represents the VRAM which will always be mapped as `RW`. Block types 3 and 4 have a special field which is the filename, in raw ASCII. [assembler]: ./assembler.md [bin_file]: ./bin_file.md [proc]: ./proc.md