TI-BASIC:Output
Command Summary
Displays an expression on the home screen starting at a specified row and column. Wraps around if necessary.
Command Syntax
Output(row, column, expression)
Menu Location
While editing a program press:
- PRGM to enter the PRGM menu
- RIGHT to enter the I/O menu
- 6 to choose Output(, or use arrows
TI-83/84/+/SE
1 byte
The Output( command is the fastest way to display text on the home screen. It takes three arguments: the row (1-8) at which you want to display something, the column (1-16), and whatever it is you want to display. It allows for more freedom than the Disp command.
Although values offscreen for the row and column values will cause an error, it's okay if part of the text displayed goes off the screen. When text goes past the last (16th) column, it will wrap to the first column of the next row. If the text goes past the last column of the last row, the remainder will be truncated. Output( will never cause the screen to scroll.
When the horizontal screen split mode is activated, only the first four rows of the home screen are available for the Output( command, which may cause undesirable behavior, and trying to output to the last four rows will cause an error. It is advisable to use the Full command at the beginning of a program that relies on Output(.
Like other text display commands, you can display each function and command as text. However, this is not without problems as each function and command is counted as one character. The two characters that you can't display are quotation marks (") and the Store command (→). However, you can mimic these respectively by using two apostrophes (' ' ), and two subtract signs and a greater than sign (—>).
Advanced Uses
If the last text display command of a program is an Output( command, then "Done" will not be displayed as the program finishes. Some programmers use this to get rid of the Done message by using an empty Output( command at the end (there is no text after the quote):
:Output(1,1,"
This trick does not work on recent "MathPrint" OSes.
You can also use output to get rid of the run indicator. Unfortunately, it only silences it for a moment, and need to be repeated in a loop to make it appear to be gone. In a game, it should be incorporated into the main loop. Actually, the run indicator is momentarily stopped every time that you output something to the upper right corner, it just needs to be repeated for it to appear to be gone. If you're on the graph screen, you can accomplish the same thing using the text( command.
:Output(1,16," "
Since the text displayed by an Output( command wraps, a single command can be used to overwrite the entire screen, by displaying 8*16=128 characters of text starting from row 1, column 1. Since every space on the screen is overwritten, this does not require a ClrHome to clear previously displayed characters. Keep in mind that exactly 16 characters will be on each line.
Optimization
Output( does not allow for more than one expression to be displayed by a single command. However, if several strings are going to be displayed next to each other by several commands, they might be combined into one (keep in mind how wrapping works):
:Output(3,3,"Some Text Here :Output(4,3,"More Text Here can be :Output(3,3,"Some Text Here More Text Here
In addition, if you are displaying text on the entire home screen, you can place the all the text in a string and then simply display the string. This is especially useful when combined with Movement because you can shift the screen quite easily.
:Output(1,1,Str1
Command Timings
The Output( command is the fastest possible way of displaying text (short of storing text to a picture and then recalling it). In particular, when going for speed, it should be preferred instead of Disp.
Error Conditions
- ERR:DOMAIN is thrown when the starting row or column are not integers in the valid range (this is affected by split screen mode).
- ERR:INVALID occurs if this statement is used outside a program.
- An error is not thrown when the argument is an empty list (unlike with Disp or pretty much anything else, really)