DarwinBotsManual
Abrir la app EnglishEN

floorstore

Le pone un piso a una celda: si lo que tiene es menor que el número, lo sube a ese número.

Datos

Palabra
floorstore
Familia
Escritura en memoria
Pila entera
saca 2, pone 0
Qué hace
Saca una dirección y un valor, y deja en la celda el mayor de los dos: es un piso. Con la dirección 0 el valor se pierde.
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 floorstore deja en la celda d el mayor entre lo que tenía y v. Si la celda ya está por encima de v, no cambia; si está por debajo, queda en v. Es un piso, como floor pero aplicado directamente sobre la memoria.

PalabraPila después
00
500 50
floorstore(vacía); la celda 50 vale como poco 0

El uso más común es impedir que una cuenta regresiva pase a negativo:

' baja de a 7 desde 30, sin pasar de 0
cond
 *.robage 0 =
start
 30 50 store
stop
start
 7 50 substore
 0 50 floorstore
stop

La celda pasa por 23, 16, 9, 2 y después se queda en 0: el substore la lleva a −5 y el floorstore la sube a 0 en el mismo ciclo.

El nombre confunde un poco: «floor» suena a redondear hacia abajo, pero acá quiere decir piso y se queda con el mayor. El techo es ceilstore.

Con la dirección 0 el valor se saca de la pila y se pierde. Como store, le avisa al sistema de lazos si escribís en .tieang1 o .tielen1.