Este programa permite una profundidad de la pila RPN limitada únicamente por la memoria indirecta disponible. Inserta los registros Y
, Z
y T
en la pila de memoria indirecta y limpia estos registros, dejándolos libres para operar con un número mayor de cálculos intermedios. El programa H004
hace una copia de la pila RPN, los registros estadísticos y las variables. La recuperación de los datos se realiza con el programa I
.
La etiqueta H
se corresponde con la tecla SIN
, que es abreviación de stack in. Además está colocada entre las teclas ENTER
y R↓
.
Dirección | Nombre |
---|---|
H<ENTER> | PUSH YZT |
H004 | PUSH MEM |
Pulsar XEQ
, seguido de H
, seguido de ENTER
. Los registros Y
, Z
y T
se guardan en la pila de memoria indirecta y se liberan para otros usos. De esta forma, la pila RPN se extiende en tres registros cada vez que se llama a PUSH YZT
Registro | Antes | Después |
---|---|---|
T | t | 0 |
Z | z | 0 |
Y | y | 0 |
X | x | x |
L | l | l |
J | j | j+3 |
Este programa guarda todas las variables de la A
a la Z
(excepto J
), los registros estadísticos, los registros X
, Y
, Z
y T
, y el registro LASTx
en la pila. El tamaño usado en la pila es de 37 direcciones: 25 variables, 6 registros estadísticos, 5 registros RPN y un registro adicional de uso interno. El iterador it
, que contiene todos los registros guardados, se copia en LASTx
. También se puede acceder a la dirección del principio de los datos guardados restándole 37 al valor en el registro J
. Los registros RPN se limpian. PUSH MEM
se puede ver como poner aparte la sesión actual y comenzar otra para uso temporal. Como PUSH MEM
y POP MEM
restablecen toda la memoria de la calculadora, el intercambio de datos entre sesiones anidadas debe hacerse mediante copia a los registros indirectos que guardan los valores de la sesión anterior, que están indicados por el iterador recién mencionado. Los registros se almacenan con esta disposición:
TAMAÑOS: <___5___> <2> <__6__> <_16> <_7_> = 36 CONTENIDOS: [ X Y Z T L i h Σ₁...Σ₆ z...k g...a ] DIRECCIONES: it it+5 it+7 it+13 it+29 it+36
Este método de paso de valores de retorno tiene el inconveniente de destruir una variable que podría estar en uso en la sesión anterior. Tiene como ventaja que no se necesita preparación antes de iniciar la nueva sesión y es más fácil de ejecutar manualmente.
Nota: Para su funcionamiento, este programa se aprovecha de que J010 MEMCOPY
deja una copia del iterador en (J)
.
Registro | Antes | Después |
---|---|---|
T | t | 0 |
Z | z | 0 |
Y | y | 0 |
X | x | 0 |
L | l | it |
J | j | j+37 |
H001 LBL H PUSH YZT: H002 XEQ J023 H003 GTO H005 H004 GTO H027 H005 SF 0 H006 R↓ H007 STO(J) H008 ISG J H009 ᴱ H010 R↓ H011 STO(J) H012 ISG J H013 ᴱ H014 R↓ H015 STO(J) H016 ISG J H017 ᴱ H018 R↓ H019 1 H020 STO(J) H021 R↓ H022 0 H023 ENTER H024 ENTER H025 R↑ H026 RTN PUSH MEM: H027 XEQ J007 H028 R↑ H029 XEQ H002 H030 RCL H H031 RCL I H032 LASTx H033 R↑ H034 XEQ H002 H035 29 H036 XEQ J008 H037 ENTER H038 x<>y H039 ⎻32 H040 22 H041 XEQ J010 H042 22 H043 x<>y H044 + H045 LASTx H046 7 H047 - H048 x<>y H049 LASTx H050 +/- H051 LASTx H052 XEQ J010 H053 CLSTK H054 RCL(J) H055 GTO J003 Longitud 180