RULE The phenomes of all individuals are formed by both of the regulation and the commands. The behaviors of all individuals depend on the commands which are just like an assembly language. That characterizes the individual due to device the combination of the commands, from low level. But it's not sufficient only to grasp the commands for design the phenome. It's also need to know the regulation which is the relation between the environment and actions of the indivual. 1. Regulation 1-1. regarding vitality Entry individuals are given &ff (255) vitality at first. Newborn individuals are given &c0 (192) vitality. They spend some vitality for each actions, as follow: one action (*1) 1 ~ 8 (random), for each trial rebirth 12, for trial even if end in failure (*2) 64, for rebirth in succeed move (replace) 4, for trial even if end in failure (*2) 12, for replace in succeed competition 12, for trial even if end in failure (*2) crossing 12, for trial even if end in failure (*2) 64, for crossing in succeed (*1): 'one action' means one command, even if it's a non-operation. Further, in the cese of the four commands, more vitality is spent. (*2): 'failure' originates in two conditions. One is that the place (niche) pointed by c-register isn't suitable. Another is just a lack of vitality for the command. When the vitality would be zero or below, the individual would die. 1-2. autorebirth It's require that the individual has 64 or above vitality. If it has less than 64 or the place pointed by c-register is not void, the command would end in failure but it spends 12 vitality as aforesaid. 12 vitality is spent for both of success and failure. Newborn individual would be given 192 vitality. 1-3. move (replace) It's require that the individual has 12 or above vitality. If it has less than 12 or the place pointed by c-register is not void, the command would end in failure but it spends 4 vitality as aforesaid. 4 vitality is spent for both of success and failure. This command is not so worth as strategy in guessing. 1-4. competition It's require that the individual has 12 or above vitality. If it has less than 12 or no individual is in the place pointed by c-register, the command would end in failure. The result of matchup depends on vitalities of both of competitors. That's done under equal condition for both. An individual, which has more vitality than another, would win and be given the vitality holded by another individual. If sum of the vitalities is larger than 255, the winning individual would be given 255 vitality. The losing individual would die. When both of the vitalities are equal, result is draw. And both of individuals just spend 12 vitality. 1-5. crossing It's require that the individual has 64 or above vitality. If it has less than 64 or the opponent pointed by c-register is not being or the place searched for newborn is not void, the command would end in failure but it spends 12 vitality as aforesaid. 12 vitality is spent for both of success and failure. Newborn individual would be given 192 vitality. 2. Command list as a quick reference Here is just a quick reference. In depth, refer to the help file named "command.hlp" which can be called from the software. 2-1. standard operations (internal operations) 00 : return by stack, re-instruction the counter by the stack 01 : jump address, no operation 02 : call address, no operation 03 : jmp to '01'(jump address), jump to the instruction '01' 04 : jmp flag_0x*0, if flag is 0x*0 jump to the instruction '01' 05 : jmp flag_0x*1, if flag is 0x*1 jump to the instruction '01' 06 : jmp flag_0x0*, if flag is 0x0* jump to the instruction '01' 07 : jmp flag_0x1*, if flag is 0x1* jump to the instruction '01' 08 : call 1st '02'(call address), call instruction first '02' 09 : call 2nd '02'(call address), call instruction second '02' 0a : register_A = 0x00, clear register_A 0b : register_A = 0xff, substitute 0xff for register_A 0c : register_A <<= 0x01, left shift 1 bit register_A 0d : register_A >>= 0x01, right shift 1 bit register_A 0e : register_A ++, increment register_A flag = 0x0* (flag = flag and 0x0f) overflow: flag = 0x1* (flag = flag or 0x10) 0f : register_A --, decrement register_A flag = 0x0* (flag = flag and 0x0f) underflow: flag = 0x1* (flag = flag or 0x10) 10 : register_A = ~register_A, inverse register_A 11 : register_A += register_B, a = a + b flag = 0x0* (flag = flag and 0x0f) overflow: flag = 0x1* (flag = flag or 0x10) 12 : register_A -= register_B, a = a - b flag = 0x0* (flag = flag and 0x0f) underflow: flag = 0x1* (flag = flag or 0x10) 13 : register_A ^= register_B, a = a xor b 14 : register_A &= register_B, a = a and b 15 : register_A ¦= register_B, a = a or b 16 : register_A = register_B, copy b to a 17 : register_A = register_C, copy c to a 18 : register_A = random numeral 0x01~0x08 19 : register_A = random numeral 0x00~0xff 1a : register_C = random numeral 0x01~0x08, for windrose as an example 1b : compare register_A and register_B case a > b: flag = 0x*0 (flag = flag and 0xf0) case a <= b: flag = 0x*1 (flag = flag or 0x01) 1c : clear flag (flag = 0x00) 2-2. self survey 1d : register_A = self sign-number 1e : register_A = self vitality 1f : register_B = self flag 2-3. habitat survey 20 : search void niche, into register_C search void niche and get its windrose-number to register_C discover: flag = 0x*0 (flag = flag and 0xf0) not find: flag = 0x*1 (flag = flag or 0x01) 21 : search same tribe, into register_C search same tribe and get its windrose-number to register_C discover: flag = 0x*0 (flag = flag and 0xf0) not find: flag = 0x*1 (flag = flag or 0x01) 22 : search different tribe, into register_C search different tribe and get its windrose-number to register_C discover: flag = 0x*0 (flag = flag and 0xf0) not find: flag = 0x*1 (flag = flag or 0x01) 23 : get sign to register_B register_B = sign-number of a individual pointed by register_C discover: flag = 0x*0 (flag = flag and 0xf0) not find: flag = 0x*1 (flag = flag or 0x01) 24 : get vitality to register_B register_B = vitality of a individual pointed by register_C discover: flag = 0x*0 (flag = flag and 0xf0) not find: flag = 0x*1 (flag = flag or 0x01) 2-4. behavior 25 : autorebirth, to a niche pointed by register_C 26 : move, to a niche pointed by register_C 27 : competition, with a individual pointed by register_C 28 : crossing, with a individual poited by register_C, and a newborn crossed would born to a niche searched