- save X in LastX
- take the n arguments from the stack, compute the result in X
- roll down the stack and replicate reg T n-1 times
Call XEQ "PF1", "PF2" or "PF3" for a function of 1, 2 or 3 args returning a single argument
Code: Select all
In: A: program name
stack: as needed for program
XEQ "PFn"
n: 1 2 3
Out: T: T T T
Z: Z T T
Y: Y Z T
X: result
L: lastX
00 { 76-Byte Prgm }
01▸LBL "PF1"
02 R↓
03 LSTO "Y"
04 R↓
05 LSTO "Z"
06 R↓
07 GTO 00
08▸LBL "PF2"
09 R↓
10 R↓
11 LSTO "Y"
12 R↓
13 GTO 01
14▸LBL "PF3"
15 R↑
16 LSTO "Y"
17▸LBL 01
18 LSTO "Z"
19▸LBL 00
20 LSTO "T"
21 R↓
22 LSTO "L"
23 ASTO ST L
24 XEQ IND ST L
25 STO ST L
26 RCL "T"
27 RCL "Z"
28 RCL "Y"
29 RCL "L"
30 X<> ST L
31 END
"Z^YMOD"
1111 ENTER
73 ENTER
55 ENTER
31
XEQ "PF3"
results in:
T: 1111
Z: 1111
Y: 1111
X: 26
L: 31
Example: to have MOD behave like the builtin % (and thus keep Y), do:
Code: Select all
01 LBL "MOD"
02 MOD
03 END
2
"MOD"
XEQ "PF1"
Hope you find it useful,
Werner