The Omnicalc User's Manual: Main Page About Us Features Upcoming Contact Forum
The Omnicalc User's Manual: Main Page About Us Features Upcoming Contact Forum
■ Installation ■ Overview
■ Symbolic Compatibility ■ Creating
■ MirageOS Compatibility ■ Using
■ Uninstallation
6. Program Compression
2. Options Screen
■ Compressing ASM programs
■ Usage ■ Running Lite8x-compressed
■ Parentheses Assistant programs
■ Memory Protection
■ Entry Menu 7. Miscellaneous
RAM Recovery
Credits
■
■
Virtual Calculators
Version History
■
■
■ Base Conversion
■ Thousands Separators
■ Quick APPS Menu
3. OS Extensions
■ Custom Menu
■ Logarithm bases
■ Partial Homescreen Clearing
4. Additional Functions
To install Omnicalc on your TI-83 Plus/TI-83 Plus Silver Edition (or 84+/84+ SE), first you must send omnicalc.8xk to your calculator
using the TI-GRAPHLINK or TI Connect software. Once it is on your calculator, press the APPS key. From the apps menu, select
Omnicalc. The splash screen will appear. Press any key to clear it. At the main menu, choose 1: Install/Uninstall. The message "Hooks
installed" should appear. In subsequent runs, Install/Uninstall will toggle between the installed and uninstalled states. If you see a
message that says "Hooks exist. Overwrite?" this means that another application on the calculator is currently using a hook that
Omnicalc needs. Choosing Yes will install Omnicalc and disable the other app. Choosing no will not install Omnicalc.
The usage of the key hook, token hook, and parser hook posed a problem for Omnicalc and Symbolic, which both make use of these
hooks. However, Omnicalc detects and chains flash applications together to solve this problem. If you have the Symbolic app present
on your calculator (you must have v1.8 or later), it will be automatically detected, and pressing MATH twice will display a menu with
functions from Symbolic. In the same manner, Symbolic's pretty() links to the Pretty Print app; hence, you can use the functionality of
all three apps via Omnicalc.
To run MirageOS via On+Apps with Omnicalc, first you must run MirageOS and press ALPHA to enter options. Scroll down to "Tasker
And Key Hooks" and press Enter. Uncheck "Quick Key Repeat", "ALPHA/APPS+ON", and "Block the Memory Menu From Access". Now
you can install Omnicalc. Upon pressing On+Apps, Omnicalc will automatically run MirageOS if it exists on your calculator. For
On+Alpha functionality, this is always enabled whether MirageOS is on your calculator or not. On+Alpha will power off the calculator
but leave it at the current screen for resuming later.
Options that enable or disable Omnicalc features are available in the General Settings screen,
number 2 in the main menu. The up and down arrow keys move the cursor in the screen. Pressing
2nd or Enter will toggle the selected option. Clear returns to the main menu. The GRAPH key will
toggle between the first and second pages of settings. For more specific information regarding each
setting, see below.
The first option in the options screen is the Parentheses Assistant. This feature manages the typing
of parentheses in the homescreen. To enter a right parenthesis, a left one must have been already
entered. In addition, parentheses levels flash upon completeting them. Parentheses within
quotation marks are assumed to be strings and are exempted from the rules above.
The Memory Protection feature of Omnicalc prevents users from deleting variables or resetting your
memory. The Reset choice in the TI-OS memory menu (2nd+MEM) is blocked, as well as the Del
key in the Mem Mgmt/Del screen. The self-test key sequence is also blocked.
The Entries Menu feature modifies your 2nd+Entry key to provide a scrolling full screen menu of
past entries. The up/down arrow keys scroll, or a numeric/alpha key can be pressed to direct paste
an item. Enter selects the currently highlighted item. In other words, the entries menu is identical in
operation to the TI-OS menus. When enabled, the entries menu appears whenever 2nd+Entry is
pressed at the homescreen, overriding the usual 2nd+Entry key behavior.
Options Screen : RAM Recovery Top of Page
If you have a TI-83 Plus Silver Edition, TI-84 Plus, or TI-84 Plus Silver Edition (sorry, this feature
will not work on a regular 83+), the RAM Recovery feature will automatically backup the contents of
your RAM. When this option is enabled, whenever the calculator is turned off, a copy of all RAM will
be created and stored. This feature works in conjunction with the RestoreMem() token. If your RAM
is ever erased, run the RestoreMem() function to restore it. For more details, please see
RestoreMem().
Warning: This function may be unstable and should be considered experimental. For the TI-83 Plus
Silver Edition, TI-84 Plus, and TI-84 Plus Silver Edition only, (the extra RAM used by this function
does not exist on the regular 83+), this option will enable your calculator to create an extra 'virtual
calculator' within it. This gives you the ability to use two calculators in one. To use this function,
after enabling it, press On+Mode anywhere in the system OS. On+Mode will switch back and forth
between the two virtual calculator states. Each state has a completely different RAM space, but
remember the archive is shared. When you switch to a virtual calculator state, a "1" or "2" will
appear in the upper right corner of the screen to remind you which state you are now in.
Note that the state of the archive memory is shared between the two calculator states, and crashes
can result if one calculator state expects a program to be in RAM and it is in archive, or vice versa.
This function should be treated as experimental only.
Omnicalc provides the ability to operate your TI-83 Plus in a variety of number bases. A number
base is a number that forms the basis of the counting units of a number system, through powers.
For example, decimal is base 10. As you move left in a decimal number, each digit's value increases
by a factor of 10. Binary is base 2, hexadecimal is base 16, et cetera.
The base operation option, will output all homescreen real integers between 0 and (2^32)-1 in the
number base of your choice. The default value is 10. To change base, press On+Log. Then enter
the new base (valid range is 2-36). To enter a single digit value such as "5" you must enter as "05".
The new base will briefly flash in the upper right screen corner.
● Binary (base 2)
● Ternary (base 3)
● Quinary (base 5)
● Octal (base 8)
● Decimal (base 10)
● Hexadecimal (base 16)
Because of OS limitations, any converted number cannot be more than 16 characters wide.
Options Screen : Thousands Separators Top of Page
The Thousands Separator option will insert commas after every 3 digits of a number where
appropriate.
Available only for the 83+ and 84+ Silver Edition calculators, the Quick APPS menu is an identically-
functioning replacement for the flash applications menu in the operating system. However, unlike
the OS menu, this one opens instantly and scrolls instantly. There are no more annoying 3 second
delays when trying to scroll at the bottom of a 50 app menu. The "Quick APPS" setting must be
checked for this feature to work. The option below it, "Hide Finance app", is used in conjunction
with this menu. If checked, the built-in Finance app will not be shown on the menu.
Omnicalc provides additional functions for users and BASIC programmers. These functions can be
accessed anywhere in the TI-OS by pressing the PRGM key twice. Also, if you have a function
highlighted in this menu, pressing the + (Plus) key will show brief help regarding the function.
Important note: Due to conflicts with OS versions 1.15 and above, Omnicalc now uses a modified
form of the real() token when displaying these tokens. This form uses real(XX, as the beginning,
where XX is a unique token identifier. The parameters for the additional function follow afterwards.
This will let you group, transfer, and edit programs with the custom tokens without problems.
Example: real(30,5) is the same as !n(5). This is the only syntax supported by Omnicalc 1.2, and
will allow programs to use these functions with the same ease and stability of the built-in OS
functions.
Because all of the functions are represented by "real(12," or something similarly cryptic, you can
move the cursor to the beginning of the token (on top of the 'r' in real) and press and hold down
On+0 to view the name of that function. The name will be displayed until you release the keys.
The subfactorial function will calculate the subfactorial of a positive integer. This is used in
probability. The subfactorial is the number of permutations of a set with no element remaining in its
original position. For example, the set {1,2,3} has only two possiblities: {3,1,2} and {2,3,1}. Hence
!n(3) returns 2.
Syntax: !n(integer)
Returns: subfactorial of integer
Functions : Base Conversions Top of Page
The baseInput() function allows for the entering of numbers in other number bases than decimal,
specifically base 2 through base 36. There are two required arguments, the first is the number in
strings to be converted, the second is the base of the number. The number is converted to decimal
and returned. If you wish to convert the inputted base to another base, there are two methods.
Either use the Base Operations option to change the output format or add an optional third
argument. The third argument is the base to convert to; it must be 2-36. The converted result of
this function must be in the range 0 to (2^32)-1. Letters A-Z may be used in the string for bases
above 10.
Syntax: baseInput(string number, base, [new base])
Returns: the number converted into the current base display (usually decimal, use Base Operations
to change)
The constant function will return the numeric value of a constant. There is one argument, a string
containing the constant to return. Valid inputs are: NA, K, CC, EC, RC, GC, G, ME, MP, MN, H, C, U.
Syntax: const(string)
Returns: numeric value of string
ExecAsm() is used to run a string containing assembly language opcodes. This can be useful for
embedding advanced features in BASIC programs without having to call external ASM programs. For
example, the B_CALL to clear the LCD is 4540h. To B_CALL ClrLCDFull and then return would be
ExecAsm("EF4045C9").
Syntax: ExecAsm(string)
Returns: 1 if success after executing the ASM instructions.
Functions : Factor Top of Page
The factor function numerically factors a positive integer. It takes one argument, the integer to
factor. It outputs a list of the prime factors in ascending order.
Syntax: factor(integer)
Returns: list of prime factors of integer
Gamma will return the gamma of a number. If you do not know what gamma is, then this function is
not for you, read on to the next one :) It has one argument, a positive number.
Syntax: gamma(number)
Returns: gamma of number
The linkGet() function will receive one byte over the link port. It has one argument, which is either 0
or 1. Zero indicates to try to get a byte immediately and fail if one is not present. One will make
linkGet() wait indefinitely for a byte. linkGet returns either the byte received (0-255), or -1 if it
failed.
Syntax: linkGet(value)
Returns: byte received or will return -1 if could not get byte.
Functions : Link Send Top of Page
The linkSend function sends one byte over the link port. It has one argument, which is the value of
the byte to send (0-255). It will send the byte immediately and return 0 if it was successful. If it was
a failure and you are sending from a 83+ it will return -1. Due to the hardware assist in the TI-
83/84 Plus Silver Edition it is not possible at this time to determine if sending a byte fails.
Syntax: linkSend(value)
Returns: 0 if success or -1 if failure
The mod (modulo) function returns the integer remainder of a division. It takes two arguments, the
first number is the dividend, the second is the divisor.
Syntax: mod(dividend, divisor)
Returns: remainder of (dividend ÷ divisor)
The RestoreMem() feature, if run on a TI-83/84 Plus Silver Edition that has the "RAM Recovery"
option enabled, will restore the memory from the last backup point. The calculator must have been
turned off at least once for this function to work. This function may turn off your calculator in the
process. If the screen goes blank after running, press On to turn the calculator on. Your memory
should be restored.
Syntax: RestoreMem(0)
The Rom>Dec function converts Roman numerals into our Arabic numerals. It has one argument, a
string containing Roman numerals. Valid numerals are: I,V,X,L,C,D,M
Syntax: Rom>Dec(string)
Returns: decimal equivalent of Roman numeral string
The play() function is a complete reimplementation of the classic PLAY command in QBASIC. This
requires either headphones to plug into the link port or the AM radio trick (check ticalc.org for the
basics of listening to music on a calculator). There is only one argument, a command string
composed of the following commands:
X This will prevent the OS from checking for link activity, allowing BASIC commands
such as Input to function correctly. Omnicalc will automatically reenable the link port
when the BASIC program exits. It is suggested that music playing programs run
play("X") as their first line.
T Valid values are T32 through T255. This sets the tempo of the music in quarter notes
per minute. The default is 120.
MN Sets normal style, in which notes play for 7/8 of their length followed by 1/8 silence.
This is the default style.
MS Sets staccato style, in which notes play for 3/4 of their length followed by 1/4
silence.
ML Sets legato style, in which notes play for their full length with no breaks between
notes.
L Sets the length of notes. Omnicalc supports whole notes through sixty-fourth notes.
Valid values are L1,L2,L4,L8,L16,L32, and L64. The default is L4.
O Sets the current octave. Valid values range from O0 (that's an O and a zero) to O6.
The default octave is 2. Note that Omnicalc's octaves are one lower than QBASIC's.
Omnicalc's notes range from 32.7 Hz to 3951.07 Hz (American Standard Pitch C1 to
B7)
< Lowers the current octave by one.
> Raises the current octave by one.
P Plays a pause ranging from P1 to P64 (P1,P2,P4,P8,P16,P32,P64). This may be
dotted by following with one or more periods.
N Plays a specific note from the 84 (12 * 7 octaves) that Omnicalc offers. Valid values
are N0-N84. N0 is a pause.
A-G Plays the corresponding note in the current octave. Sharps (plus sign) and flats
(minus sign) may follow to adjust the pitch, as well as a number to set the length of
the specific note.
The order of commands that can follow a note such as "A" can be confusing. As an example, A+1.. is
a valid note. The sharp or flat must immediately follow the note's letter. Next, a note length may be
specified (1,2,4,8,16,32,64). If no length is specified, the note is played with the length given in the
L command. Last, one or more periods may follow to specify a dotted note. Each dot adds 1/2 of the
previous length to the note. As an example, C. is 3/2 the length of a normal C, and C.. is 7/4 the
length of a normal C.
Simp√ returns the simplified form of a square root. It has one argument, a positive integer which is
the radicand.
Syntax: simp√(integer)
Returns: string containing the simplified √(integer)
Sprite is the most complicated function in Omnicalc. It takes a part of a picture variable and displays
it to the screen. It has 7 arguments, with an optional eighth. All arguments are integers. The
arguments in order from left to right are explained below:
Example: If Pic0 contains the screenshot on the left, and you ClrDraw, and then execute the sprite()
command shown in the middle picture, the screen will look as shown in the right picture.
Syntax: sprite(picture variable number, sprite X, sprite Y, sprite width, sprite height, destination X,
destination Y, [options])
Returns: 0
Copyright © 2000-2005 Detached Solutions Last Modified: 2004-11-05 12:47:18 GMT
www.detachedsolutions.com Main Page About Us Features Upcoming Contact Forum
Omnicalc provides a custom menu for your 83+, much like the CUSTOM menu on a TI-86. You
can store frequently used functions from the Catalog in the CUSTOM menu for quick access. To
access the custom menu, press VARS twice. To paste a function from the custom menu, scroll to
it and press enter, or press the numeric key that corresponds with its entry.
Your custom menu will be empty at first. To put a function in a slot in the custom menu, go to
the catalog by pressing 2nd+Catalog. Scroll to the function you want to insert and press On and
the number of the slot to fill. For example, to put abs( in slot 4 you would scroll to abs( and press
On+4. To remove a function from the custom menu, first press VARS twice to access the menu.
Scroll to the item and press Del.
Omnicalc modifies the existing log() function on the calculator to provide support for arbitrary log
bases. log() with a single argument, such as log(20), will take the log base 10 of 20. However,
there is also a format log(number,base). This function only works with real numbers. For
example:
When you press CLEAR at the homescreen, typically it erases the entire line. With Omnicalc, a 89-
style CLEAR functionality is enabled, depending on the cursor location. If the cursor is at the end
of the current entry in the homescreen, pressing CLEAR will erase the entire line. However, if the
cursor is located inside the entry, pressing CLEAR will erase only tokens to the right of the
cursor. Pressing CLEAR immediately again will clear the entire line.
Omnicalc provides the ability for external font sets to be loaded onto your calculator. These font sets
are transferred into your RAM as programs, and are detected by Omnicalc. This lets you customize
the large font set of your TI-83 Plus.
A computer utility is provided to allow easy creation of font sets. To download, click here. Windows
95/98/ME/NT/2000/XP is required. You will need an unzipping utility such as WinZip to extract the
installation files. After installing the Omnicalc Font Creator, a shortcut will be created in your Start
menu. Click Start, Programs, Omnicalc, Omnicalc Font Creator. You can now create a font set. At the
bottom of the window the number of the character you are editing is displayed. Characters 0-255
exist. By clicking in a box in the 5x7 grid you can edit the character. A preview is shown to the right.
The Next button is a shortcut to quickly change to the next character. To switch characters, click on
the Switch Character menu. The common characters are accessible via sub menus. For the other
characters (0-31, 123-255) you will have to click and then enter the number of the character. The TI-
OS normal font is the default for editing when you create a new font set, so this should serve as a
guide to what each character number represents. The File menu is self-explanatory, consisting of
standard file managing functions. When you have finished your set, click the Compile menu. You will
then need to enter the calculator filename for the font set (limit 8 characters). Click OK and a DOS
window should open. When its title contains the word "Finished" you should close it with a X. Your
font set has been saved as a .8xp file in the Omnicalc Font Creator directory (default is C:\Program
Files\Omnicalc). Send it to the RAM of your TI-83 Plus via the TI-GRAPHLINK or TI Connect software.
For instructions on what next to do, please see the next section.
To access the font set selection screen, choose option "3: Font Sets" from the Omnicalc main menu.
If you see the message "No font sets found" this means that Omnicalc could not locate any font sets
in RAM; you must have at least one font set on the calc. Otherwise, you will see the font selection
screen (see third picture below). Pressing the left/right arrows will scroll through the font sets
available on your calculator. The current selected set's name is shown, and pressing the up/down
arrows will scroll the character preview. Pressing 2nd/Enter toggles if font sets are activated; and
Clear returns to the main menu.
The Lite8x utility allows you to compress ION and MirageOS programs to save space on your
calculator. Download Lite8x (for Windows 95/98/2000/ME/XP); it will create a program group in
your Start menu called "Lite8x." There is a readme link in that group that contains all the needed
instructions on how to compress 83+ programs. Please note that the compression ratio varies
depending on the program's size and content. In some cases with very small programs, Lite8x
may actually increase the size. The exact ratio is displayed when Lite8x runs.
The programs compressed with Lite8x require that Omnicalc be present on the calculator to run.
They do not require that Omnicalc currently be installed, however. Lite8x programs can be run in
the same manner as uncompressed programs. When started from ION, MirageOS, or a
compatible shell, a compressed program will automatically expand itself and run without any
noticeable side effects to the user.
If there is insufficient free RAM to decompress a program, the required and available bytes will
be shown so that you can make an attempt to free up the needed memory if possible. The last
note regarding Lite8x compressed programs is that writeback does not work. If a program wishes
to use writeback, it will have to be stored in the program header as Lite8x does not modify that.
Potential areas include sticking data after the program title but before the label "start" in the "jr
nc, start" of an ION program, or using the icon of a MirageOS program. Example:
xor a
jr nc,start
.db "Program Title",0
highscore:
.dw 0
highscore_name:
.db "A.A. Person",0
start:
● Kirk Meyer - He provided the math theory that I implemented for the factor() and simp√().
He also wrote Lite86 II and provided the source code that form the basis of Lite8x.
● Dan Englender - He discovered most of the TI-83 Plus hooks, which Omnicalc relies on for
its operations. He also helped me with the bugs that seemed impossible to track down.
● Brandon Sterner - Our discussions on OS integration led to improved parser and token
insert routines in Omnicalc and Symbolic, as well as interoperatiblity between our two
applications.
● Jason Kovacs - He helped with the aesthetics of Omnicalc and also provided some ideas for
Omnicalc, most notably the idea for a clipboard.
● Jason Malinowski - He extensively beta tested and was instrumental in reporting bugs and
suggesting new features.
● All the beta testers - They tracked down and reported numerous bugs in Omnicalc over
months of testing.
Version 1.26
April 19, 2005
Version 1.25
December 9, 2004
Version 1.24
November 11, 2004
Version 1.23
August 5, 2004
Version 1.22
August 4, 2004
● Fixed problems with the quick apps menu that existed only because TI apps flagrantly and
repeatedly violate TI's own published standards and specifications.
Version 1.21
August 3, 2004
Version 1.20
July 31, 2004
Fixes:
Version 1.10
July 8, 2003
Fixes:
Version 1.0
Initial release