'Individuality

def race 1000
def botname 222
def conspecs 223
def sexuality 224
def nounc 991
def nount 992
def verbc 993
def verbt 994
def bot1 28
def bot2 29
def bot3 30
def bot4 31
def bot5 32
def bot6 33
def bot7 34
def bot8 35
def bot9 36
def bot10 37
def bot11 38
def bot12 39
def bot13 40
def bot14 41
def bot15 42
def bot16 43
def bot17 44
def bot18 45
def bot19 46
def bot20 47
def b1ti 48
def b2ti 49
def b3ti 50
def b4ti 51
def b5ti 52
def b6ti 53
def b7ti 54
def b8ti 55
def b9ti 56
def b10ti 57
def b11ti 58
def b12ti 59
def b13ti 60
def b14ti 61
def b15ti 62
def b16ti 63
def b17ti 64
def b18ti 65
def b19ti 66
def b20ti 67

'Eye system

def preveye1 51
def preveye2 52
def preveye3 53
def preveye4 54
def preveye5 55
def preveye6 56
def preveye7 57
def preveye8 58
def preveye9 59
def eye1id 61
def eye2id 62
def eye3id 63
def eye4id 64
def eye5id 65
def eye6id 66
def eye7id 67
def eye8id 68
def eye9id 69

'Switches

def focused 193
def memoryd 805
def decision 806
def tiede 807
def eyed 808
def newbot 809

'Command Storage

def foodr 20
def requestv 21
def requestt 22
def buffer1 184
def buffer2 185
def buffer3 186
def buffer4 187
def buffer5 188
def buffer6 189
def buffer7 190
def buffer8 191
def buffer9 192
def tswitch 700
def tbuffer1 316
def tbuffer2 317
def tbuffer3 318
def tbuffer4 319
def tbuffer5 320
def tbuffer6 321
def tbuffer7 322
def tbuffer8 323
def tn1 324
def tn2 325
def tn3 326
def tn4 327
def tn5 328
def tn6 329
def wordn11 488
def wordn21 489
def wordn31 490
def wordn12 491
def wordn22 492
def wordn32 493
def wordn13 494
def wordn23 495
def wordn33 496
def wordn14 497
def wordn24 498
def wordn34 499
def wordnu 500


'Communications
'All prime numbers are questions, uses a div funciton to check for questions
'External communications only
def id .out1
'out2 is ratial id
def excoms1 .out3 'a!
def excoms2 .out4 'a!
def excoms3 .out5 'Q?
def excoms4 .out6 'Q?
def locr .out7
def relx .out8
def rely .out9
def swarmid .out10
'Tie Comms
def tid .tout1
def teye .tout2
def an .tout3
def qu .tout4
'tout5 for tie formations info
'tout6 for x
'tout7 for y

'Historical Memory
'510-601 waypoints
def point1x 510
def point1y 511
def point2x 512
def point2y 513
def point3x 514
def point3y 515
def point4x 516
def point4y 517
def point5x 518
def point5y 519
def point6x 520
def point6y 521
def point7x 522
def point7y 523
def point8x 524
def point8y 525
def point9x 526
def point9y 527
def point10x 528
def point10y 529
def point11x 530
def point11y 531
def point12x 532
def point12y 533
def food1x 534
def food1y 535
def food2x 536
def food2y 537
def food3x 538
def food3y 539
def food4x 540
def food4y 541
def food5x 542
def food5y 543
def food6x 544
def food6y 545
def food7x 546
def food7y 547
def food8x 548
def food8y 549
def food9x 550
def food9y 551
def food10x 552
def food10y 553
def food11x 554
def food11y 555
def food12x 556
def food12y 557
def food13x 558
def food13y 559
def food14x 600
def food14y 601

'411-436 Conspec

def lin1 411
def lin2 412
def lin3 413
def lin4 414
def lin5 415
def lin6 416
def lin7 417
def lin8 418
def lin9 419
def lin10 420
def rin1 421
def rin2 422
def rin3 423
def rin4 424
def rin5 425
def rin6 426
def rin7 427
def rin8 428
def rin9 429
def rin10 430
def tranl 431
def tranr 432
def respon1 433
def respon2 434
def respon3 434
def respon4 435
def respon5 436
def species1 23
def species2 24
def species3 25
def species4 26
def species5 27

'68-193 Observational data

def t1x 68
def t1y 69
def t1v 70
def t1a 71
def t2x 72
def t2y 73
def t2v 74
def t2a 75
def t3x 76
def t3y 77
def t3v 78
def t3a 79
def t4x 80
def t4y 81
def t4v 82
def t4a 83
def t5x 84
def t5y 85
def t5v 86
def t5a 87
def t6x 88
def t6y 89
def t6v 90
def t6a 91
def t7x 92
def t7y 93
def t7v 94
def t7a 95
def t8x 96
def t8y 97
def t8v 98
def t8a 99
def t9x 100
def t9y 101
def t9v 102
def t9a 103
def t10x 104
def t10y 105
def t10v 106
def t10a 107
def ct1 108
def ct2 109
def ct3 110
def ct4 111
def ct5 112
def ct6 113
def ct7 114
def ct8 115
def result1 116
def result2 117
def result3 118
def result4 119
def result5 120
def result6 121
def result7 122
def result8 123
def obv1x 124
def obv1y 125
def obv1v 126
def obv1a 127
def obv2x 128
def obv2y 129
def obv2v 130
def obv2a 131
def obv3x 132
def obv3y 133
def obv3v 134
def obv3a 135
def obv4x 136
def obv4y 137
def obv4v 138
def obv4a 139
def obv5x 140
def obv5y 141
def obv5v 142
def obv5a 143
def obv6x 144
def obv6y 145
def obv6v 146
def obv6a 147
def obv7x 148
def obv7y 149
def obv7v 150
def obv7a 151
def obv8x 152
def obv8y 153
def obv8v 154
def obv8a 155
def obv9x 156
def obv9y 157
def obv9v 158
def obv9a 159
def obv10x 160
def obv10y 161
def obv10v 162
def obv10a 163
def obv11x 164
def obv11y 165
def obv11v 167
def obv11a 168
def obv12x 170
def obv12y 171
def obv12v 172
def obv12a 173
def obv13x 174
def obv13y 175
def obv13v 178
def obv13a 179
def obv14x 180
def obv14y 181
def obv14v 182
def obv14a 183

'Initialization

cond
*.robage 0 =
start
32000 rnd 1 .botname store
*.botname 10 rnd 1 div .race store
3 rnd 1 .sexuality store
420 .eye1dir store
315 .eye2dir store
210 .eye3dir store
105 .eye4dir store
-105 .eye6dir store
-210 .eye7dir store
-315 .eye8dir store
-420 .eye9dir store
105 .eye1width store
105 .eye2width store
105 .eye3width store
105 .eye4width store
105 .eye5width store
105 .eye6width store
105 .eye7width store
105 .eye8width store
105 .eye9width store
40 .repro store
160 *.aim add .setaim store
stop

'360 Eye system

'eye1 specific

cond
*.eye1 *.preveye1 5 !~=
*.eye1 *.preveye2 5 ~=
*.eye2id 1 = and
*.eye1 *.preveye9 5 ~=
*.eye9id 1 = and or
start
1 .eye1id store
stop

cond
*.eye1 *.preveye1 5 !~=
*.eye1 *.preveye2 5 !~=
*.eye1 *.preveye9 !~=
start
0 .eye1id store
stop

cond
*.eye1 0 =
start
0 .eye1id store
stop

'eye2 specific

cond
*.eye2 *.preveye2 5 !~=
*.eye2 *.preveye3 5 ~=
*.eye3id 1 = and
*.eye2 *.preveye2 5 ~=
*.eye1id 1 = and or
start
1 .eye2id store
stop

cond
*.eye2 *.preveye2 5 !~=
*.eye2 *.preveye3 5 !~=
*.eye2 *.preveye1 5 !~=
start
0 .eye2id store
stop

cond
*.eye2 0 =
start
0 .eye2id store
stop

'eye3 specific

cond
*.eye3 *.preveye3 5 !~=
*.eye3 *.preveye4 5 ~=
*.eye4id 1 = and
*.eye3 *.preveye2 5 ~=
*.eye2id 1 = and or
start
1 .eye3id store
stop

cond
*.eye3 *.preveye3 5 !~=
*.eye3 *.preveye4 5 !~=
*.eye3 *.preveye2 5 !~=
start
0 .eye3id store
stop

cond
*.eye3 0 =
start
0 .eye3id store
stop

'eye4 specific

cond
*.eye4 *.preveye4 5 !~=
*.eye4 *.preveye5 5 ~=
*.eye5id 1 = and
*.eye4 *.preveye3 5 ~=
*.eye3id 1 = and or
start
1 .eye4id store
stop

cond
*.eye4 *.preveye4 5 !~=
*.eye4 *.preveye4 5 !~=
*.eye4 *.preveye3 5 !~=
start
0 .eye4id store
stop

cond
*.eye4 0 =
start
0 .eye4id store
stop

'eye5 specific

cond
*.eye5 *.preveye5 5 !~=
*.eye5 *.preveye6 5 ~=
*.eye6id 1 = and
*.eye5 *.preveye4 5 ~=
*.eye4id 1 = and or
start
1 .eye5id store
stop

cond
*.eye5 *.preveye5 5 !~=
*.eye5 *.preveye6 5 !~=
*.eye5 *.preveye4 5 !~=
start
0 .eye5id store
stop

cond
*.eye5 0 =
start
0 .eye5id store
stop

'eye6 specific

cond
*.eye6 *.preveye6 5 !~=
*.eye6 *.preveye7 5 ~=
*.eye7id 1 = and
*.eye6 *.preveye5 5 ~=
*.eye4id 1 = and or
start
1 .eye6id store
stop

cond
*.eye6 *.preveye6 5 !~=
*.eye6 *.preveye7 5 !~=
*.eye6 *.preveye5 5 !~=
start
0 .eye6id store
stop

cond
*.eye6 0 =
start
0 .eye6id store
stop

'eye7 specific

cond
*.eye7 *.preveye7 5 !~=
*.eye7 *.preveye9 5 ~=
*.eye8id 1 = and
*.eye7 *56 5 ~=
*.eye6id 1 = and or
start
1 .eye7id store
stop

cond
*.eye7 *.preveye7 5 !~=
*.eye7 *.preveye8 5 !~=
*.eye7 *.preveye6 5 !~=
start
0 .eye7id store
stop

cond
*.eye7 0 =
start
0 .eye7id store
stop

'eye8 specific

cond
*.eye8 *.preveye8 5 !~=
*.eye8 *.preveye9 5 ~=
*.eye9id 1 = and
*.eye8 *.preveye7 5 ~=
*.eye7id 1 = and or
start
1 .eye8id store
stop

cond
*.eye8 *.preveye8 5 !~=
*.eye8 *.preveye9 5 !~=
*.eye8 *.preveye7 5 !~=
start
0 .eye8id store
stop

cond
*.eye8 0 =
start
0 .eye8id store
stop

'eye9 specific

cond
*.eye9 *.preveye9 5 !~=
*.eye9 *.preveye1 5 ~=
*.eye1id 1 = and
*.eye9 *58 5 ~=
*.eye8id 1 = and or
start
1 .eye9id store
stop

cond
*.eye9 *.preveye9 5 !~=
*.eye9 *.preveye1 5 !~=
*.eye9 *.preveye8 5 !~=
start
0 .eye9id store
stop

cond
*.eye9 0 =
start
0 .eye9id store
stop

'the focuseye is set

cond
*.robage 20 mod 0 !=
*193 0 =
start
5 .focuseye *.eye1 sgn abs mult *.eye1id 1 sub abs mult store
6 .focuseye *.eye2 sgn abs mult *.eye2id 1 sub abs mult store
7 .focuseye *.eye3 sgn abs mult *.eye3id 1 sub abs mult store
8 .focuseye *.eye4 sgn abs mult *.eye4id 1 sub abs mult store
9 .focuseye *.eye5 sgn abs mult *.eye5id 1 sub abs mult store
1 .focuseye *.eye6 sgn abs mult *.eye6id 1 sub abs mult store
2 .focuseye *.eye7 sgn abs mult *.eye7id 1 sub abs mult store
3 .focuseye *.eye8 sgn abs mult *.eye8id 1 sub abs mult store
4 .focuseye *.eye9 sgn abs mult *.eye9id 1 sub abs mult store
stop

'the visual memory is stored

cond
start
*.eye1 .preveye1 store
*.eye2 .preveye2 store
*.eye3 .preveye3 store
*.eye4 .preveye4 store
*.eye5 .preveye5 store
*.eye6 .preveye6 store
*.eye7 .preveye7 store
*.eye8 .preveye8 store
*.eye9 .preveye9 store
stop

'Conspec; Simple
'******************

'Used before multimode to identify basics without wasting memory.

cond
*.multi 0 =
*.eyef 0 >
*.refeye 0 =
start
*.refxpos *.reypos angle .setaim store
*.maxvel *.vel sub .up store
stop

'Universal Conspec Recognition System
'*************************************

cond
*.eyef 0 >
*.decision 0 =
start
193 inc
4 .out5 store
1 .decision store
stop

'Ask the first question

cond
*.decision 1 =
start
4 .out5 store
stop

'Check for an answer

cond
*.decision 1 =
*.out5 4 =
*.in1 *.in3 =
start
.newbot 1 store
.decision inc
stop

cond
*.decision 1 =
*.out5 4 =
*.in1 *.in3 !=
start
1 .memoryd store
.rin1 .memloc store
2000 .decision store
stop

'Memory Genes
'*****************************
'Explination of .memoryd
'1 - write, 50 - read, 100 - erase, 150 - search
'Used for Universal Conspec;

'check for an empty memloc
cond
*.memoryd 1 =
*.memval 0 !=
start
.memloc inc
stop


cond
*.memoryd 1 =
start
 .memval store
.memloc inc
stop

end