Welcome to a new generation of CPUs! We run on 48 bits, using 4 registers, relative addressing, cyclic memory, and last but not least a customized instruction set. The Gentoo handbook told me once: 1: READ EVERYTHING, don't skip around. don't skim the text, but do read the whole thing once to get an idea whats going on. 2: Use your brain! Stop and think about what its saying. 3: If you have a problem, try to solve it yourself. The same goes for you. The memory, (which will be called: board through this manual) will be initialized with 0s. Then the CPU will load the programs, and start them in an arbitrary order. The general layout of the supported instructions is: name_of_instruction destination source if you feel like it you can also write: name_of_instruction,destination,source; or even: name_of_instruction,,,,destination,,source; Well, you get the idea. I will only use the first version, because it uses less characters. Additionally, it is possible to write comments everything after a semicolon will be ignored: ;Hi dear reader, I am a comment same goes for // //I am a comment, too! You can use the special comments: ;name: $heregoesthenameofyourbot ;desc: here goes some description of your bot, to provide your bot with meta information ===Binary Layout=== Every memory cell (read: "every memory word") consists of 3 parts: [op1] [op2] [cmd] 20 20 6 Bits While it is possible to use operands that are not needed by the instruction, it is considered bad style and will most probably result in unexpected crashes. Do not use additional operands for modifying additional values by means of post decrement/increment, because this would result in ugly code. === Registers === There are four general purpose registers. ptr - the pointer register acc - the accumulator register r1 - nameless register one r2 - nameless register two === CPU flags === There are three flags that will be set by the CPU: equal - will be set if the result of the last instruction was zero above - will be set if the result of the last instruction was >zero smaller - will be set if the result of the last instruction was