By itself - goes to the next step of the program (STEP-RIGHT). With F - a programming instruction that causes calculator to go to the adress given after the command if, and only if the value in RPN register X is less than zero (F x<0). With K - causes calculator to go to the adress given in a specified register in the same case as in F x<0 (K x<0 a). If this register is 0, 1, 2 or 3, then the information in it is dectemented 1.
The same as previous. STEP-LEFT or F x=0 or K x=0 a
By itself : in "calculation" mode sets the current address to 00, inside a program returns from a subroutine or goes to address 00 (if subroutine stack is empty) - I translated that as RET/0. With F or K works like the previous two buttons (F x>=0 or K x>=0 a)
By itself : in "calculation"
mode tells calculator to run a program from the current address, while
running a program - stops the execution without modifying anything on the
stack (almost any key can stop a program, but only this one doesn't change
anything), if written inside a program it makes the calculator stop. I
call this function STOP/RUN (it is often used after
the previous button - you usually want to run a program from start, not
from where it stopped the last time). With F or K it becomes another of
those comparison commands that checks if RPN register X is NOT 0 (F
x!=0 or K x!=0 a)
Another prefix key, K
By itself, recalls the data from specified register into RPN register X. The rest of the stack moves up, value in T disappears, and the previous value from X is also copied into X1 (previous-result register): "RCL a". With F, this command is used in a program : if the value in register 0 (r0) is greater or equal to 2, it is dectemented and a program jumps to a given address; if not, then the execution continues normally. It's strange that unlike similar commands in computer languages, value in r0 is not decremented if the check fails. Basically, F L0 implements a loop that is executed as much times as the number in r0. With K, this key calls up the value of a register with a number that is given in a specified register. As with all K- indirect commands, values in r0, r1, r2 and r3 are automatically decremented after such a command (K RCL 0); values in other registers (K RCL a) are unchanged.
By itself, stores the data from RPN register X into a data register : "STO a". With F or K, it basically does the same as the previous key : F L1 or K STO a.
By itself, it is used both in a program or in "calculation" mode to jump to a given address (JMP). With F, it performs the same old loop, but with r2 (F L2). With K, it jumps to an address from a register with a given number (K JMP a). The usual comment about K- commands applies here, too.
By itself, it
is used in a program to call a subroutine at a given address (SUB).
A subroutine runs until a "return from a subroutine" (RET/0) command is
encountered. In a "calculation" mode, it performs one program step (useful for
tracing and debugging). With F, it performs a loop with r3
(F L3), and with K, it calls a subroutine from a
register with a given number. If used in a "calculation" mode,
K SUB command can lead to a variety of unexplored
situations :)
By itself, it is
a good old digit 7. With F, it computes a sinus of register X (F
sin). With K, it leaves only an "integer part" of rX (it is
not a mathematical function [x] : [-2.5]=-3, and 2 . 5 /-/ K[x]
will give you -3. K[x] is supported only on MK-61
and 52; on MK-54 it behaves like K -.
Apart from being a 8, this key can calculate cosinus (F cos) or "fractal part" of rX (F cos or K {x}). K{x} is supported only on MK-61 and 52; on MK-54 it behaves like K -.
9, tangent (F tg) or a (binary) operation, calculating a maximum of rX and rY (K max). The realisation of max is buggy : if one of the operands is 0, the result is always 0. K max is supported only on MK-61 and 52; on MK-54 it behaves like K -.
By itself, it's a minus (that is, binary operation that pops rY and rX from the stack and pushes rY-rX). With F, it calculates a square root of rX (F sqrt), and if used with K, it thinks for a couple of seconds and then tells you that you've made an "ErrOr" (K -). This error is one of the less useful ones; it can be used though if you want to have something unprintable in rX. The command "K -"can be entered as a part of program, it's code is "27"
Both function are obvious : division (/) or function 1/rX (F 1/x). K / behaves like K -.
4, arcsinus (F arcsin) or (on MK-61/52) module (sqrt(x*x) - K|x|)
5, arccosinus (F arccos) or (on MK-61/52) sign of rX (0 if 0, -1 if <0, 1 if >0 - K sign)
6, arctangent (F arctg) or (on MK-61/52) translation of angular values ("hours"-"hours and minutes") (K HtoHM)
Binary +, invocation of "pi" (3.1415926) into rX (F pi) or (on MK-61/52) translation of angular values ("hours and minutes" - "hours") (K HMtoH)
Multiplication (*) or the calculation of a square of rX (rX=rX*rX) - F x2. K * behaves like K -.
1 or exponent of rX (F e^x). K 1 behaves like K -.
2 or a lg of rX (ln rX/ln 10) (F lg). K 2 behaves like K -.
3
or ln of rX (F ln). K 3 on MK-61/52
translates angular values ("hours" - "hours, minutes and seconds")
(K HtoHMS)
Exchange of
values in RPN registers rX and rY (EXCH), calculation of rX^rY (F
x^y) or (on MK-61/52) conversion of angular values ("hours, minutes and
seconds" - "hours) (K HMStoH).
The button itself pushes the RPN stack upward (rZ into rT, rY into rZ, rX into rY) - ENTER. With F, it recalls the value of rX before the last operation (F Bx). With K on MK-61/52, it generates a (quite un-)random valuefrom 0 to 1 - K RND. On MK-61/52, this button is also used to specify register E (there's a story about its use on MK-54/B3-34).
0, digital exponent - F 10^x, or a "do-nothing-operation" (K NOP). K NOP is used in programming (code 54), and sometimes it can be handy in hacking.
digital point (.) (EXP . is a very useful hacking combination - you never can tell what it will do in various situations!). With F, it performs a round-about circulation of RPN stack (rX into rY into rZ into rT), and with K on MK-61/52, it's a binary AND operation (K AND). This button is also used to specify register A.
a command to change a sign of a number in rX (in a normal mode) or of it's exponential part (if you are entering it) : /-/. With F, it commands the calculator to go into a "calculation" mode (F AUTO). With K on MK-61/52, it's a binary "OR" operation (K OR). This button is also used to specify register B.
a command to start entering the exponential part of a number (EXP). Very useful in hacking. With F, it command calculator to go into a "programming" mode (F PROG). With K on MK-61/52, it's a binary XOR operation (K XOR). This button is also used to specify register C.
a command to write
0 into rX (Cx). With F, this key is supposed to simply provide a way to
"forget" that F was ever pressed (F Cf), and with K on MK-61/52, it calculates a binary
negation of the number in rX. This button is also used to specify register
D.
A note about binary calculation : the first digit of those binary numbers
is always ignored (the "good style" is to always put 8 and a decimal point
there : 8,567 is a binary 0101 0110 0111). The result of K OR, K AND, K
XOR and K INV always has such a form.
A note about keys : in my "articles", the bold and monospaced text means the calculator output ("1 -12" would mean 1/(10^12)), and bold, monospaced and underlined text means the keys you are supposed to (or not supposed to, depending on what I say nearby) to press ( 1 EXP 70 F x2 F x2 F x2 - don't do this!). When I write program codes, I write the step number and operation code around each command : so, 05. K RCL b (AB) means that you're supposed to enter "K RCL B" on program location 05, and those keys will generate a code AB.
A note about hexadecimal codes : A is displayed as "-", B is "L", C is "C", D is "r", E is "E" and F is an empty space.
The pictures of the keys were stolen from a big MK-61 picture taken from Andrew Davie's site. So I'm too lazy to scan my own MK-61.