Change the mode setting:
setMode(
modeString
,string(exact(mod(expr(getMode(
modeString
)),
n
)+1)))
The next mode setting number is calculated with the mod() function which provides the wrap-around
we need. For example, if there are three setting options, then we need to convert a 1 to 2, 2 to 3 and 3
to 1. The calculation works like this for n = 3:
mod(1,3)+1 = 2 (setting 1 changes to setting 2)
mod(2,3)+1 = 3 (setting 2 changes to setting 3)
mod(3,3)+1 = 1 (setting 3 wraps around to setting 1)
Applying exact() to the mode setting number calculation removes any decimal points or exponent
characters, which may be present, depending on the current display format setting. This must be done
because setMode() does not accept these characters in the setString argument. By including exact(),
the expression will work with any display mode setting and in Approx mode.
This table shows the values of modeString and n for the modes which can be set with this method.
modeString and number of options for various modes
3"15""Base"
3"14""Exact/Approx"
2 for TI-89, 3 for TI-92+"13""Split screen ratio"
6"12""Graph 2"
2"11""Number of Graphs"
3"8""Split screen"
2"7""Pretty Print"
3"6""Vector Format"
3"5""Complex Format"
3"4""Exponential Format"
2"3""Angle"
26"2""Display digits"
6"1""Graph"
nmodeStringMode category
Refer to the User's Guide entry for the setMode() function for descriptions of the mode setting options.
Note that modes "Split 1 App" and "Split 2 App" do not use number codes for the settings, and the
"Language" mode does not use a number code for the mode itself. These modes cannot be set with
this method.
If you use several keyboard programs to change modes, you can save a little memory by using a
program to change the mode settings:
modecycl(mode,n)
Prgm
©("mode",n) Toggle "mode" with n options
©3jan02/dburkett@infine.com
setmode(mode,string(exact(mod(expr(getmode(mode)),n)+1)))
EndPrgm
then you could use these keyboard programs with [DIAMOND] [1], [DIAMOND] [2] and [DIAMOND] [3]:
9 - 19