DarwinBotsManual
Abrir la app EnglishEN

addstore

Le suma un número a lo que ya hay en una celda, sin tener que leerla antes.

Datos

Palabra
addstore
Familia
Escritura en memoria
Pila entera
saca 2, pone 0
Qué hace
Saca una dirección y un valor, y le suma el valor a esa celda, recortado a ±32000 de forma circular. Con la dirección 0 el valor queda en la pila.
Costo
Store dividido por el divisor de cada uno, solo si escribe
División del costo
÷ 5
Se ejecuta en
en el cuerpo de un gen (start o else) y solo si el tope de la pila booleana es verdadero o está vacía
Marca lazos
sí

v d addstore le suma v a la celda d. Equivale a *d v add d store, con menos palabras y a la quinta parte del costo de un store.

PalabraPila después
22
502 50
addstore(vacía); la celda 50 vale 2 más

Sirve para acumular: sumar lo que va viendo un ojo, llevar un total o hacer crecer una orden de a poco.

' acelera de a poco: pide 2 más por ciclo, hasta 40
cond
start
 2 50 addstore
 40 50 ceilstore
 *50 .up store
stop

La celda 50 vale 2, 4, 6… y desde el ciclo 20 se queda en 40, el techo que le pone ceilstore. .up recibe ese valor en cada ciclo.

Con un v negativo resta, así que -3 50 addstore hace lo mismo que 3 50 substore. El resultado se recorta a ±32000, igual que en store, y con la dirección 0 el valor queda en la pila sin usarse.

A diferencia de inc, addstore sí le avisa al sistema de lazos cuando escribís en .tieang1 o .tielen1: para sumarle 1 al ángulo de un lazo, 1 .tieang1 addstore es la forma correcta.