absstore
Le saca el signo a lo que hay en una celda: un negativo pasa a positivo.
Datos
- Palabra
absstore- Familia
- Escritura en memoria
- Pila entera
- saca 1, pone 0
- Qué hace
- Saca una dirección y le quita el signo a la celda: −77 pasa a 77.
- 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 absstore saca la dirección d y deja en la celda el valor absoluto de lo que tenía: −77 pasa a 77, y un positivo queda igual. No toma ningún valor de la pila.
| Palabra | Pila después |
|---|---|
50 | 50 |
absstore | (vacía); si la celda 50 tenía −77, ahora tiene 77 |
Es útil para medir una distancia sin importar el lado:
' guarda en la 50 cuánto se aleja la energía de 5000, para arriba o para abajo
cond
start
*.nrg 5000 sub 50 store
50 absstore
stopCon 3000 de energía (.nrg) la celda queda en 2000, igual que con 7000. Después basta una sola comparación, como *50 500 <, para saber si la energía está cerca de 5000.
Es lo mismo que *50 abs 50 store (ver abs), con menos palabras y a la octava parte del costo de un store. Para cambiar el signo en lugar de sacarlo está negstore.