negstore
Le cambia el signo a lo que hay en una celda: 20 pasa a −20 y −20 a 20.
Datos
- Palabra
negstore- Familia
- Escritura en memoria
- Pila entera
- saca 1, pone 0
- Qué hace
- Saca una dirección y le invierte el signo a la celda: 20 pasa a −20.
- Costo
- Store dividido por el divisor de cada uno, solo si escribe
- División del costo
- ÷ 8
- 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
- no
d negstore saca la dirección d y le invierte el signo a lo que haya en la celda. No toma ningún valor de la pila.
| Palabra | Pila después |
|---|---|
50 | 50 |
negstore | (vacía); si la celda 50 tenía 20, ahora tiene −20 |
Aplicado en cada ciclo, hace oscilar un valor entre dos extremos:
' avanza meneándose: gira 20 a un lado y 20 al otro, ciclo por medio
cond
*50 0 =
start
20 50 store
stop
start
50 negstore
*50 .aimdx store
10 .up store
stopEl primer gen carga 20 la primera vez. Desde ahí la celda 50 alterna entre −20 y 20, y el bot gira con .aimdx para un lado y para el otro mientras avanza con .up.
Es lo mismo que -1 50 multstore (ver multstore), pero más barato: la octava parte del costo de un store. Ojo con .tieang1 y .tielen1: negstore cambia el número, pero el lazo no se entera; ahí usá -1 .tieang1 multstore (ver Escribir en la memoria).