Disaster

author: Alipor
version: '1.1'
summary: 'A text maker (Cnnot save it is a one-text-use thing)'
graphics: '0'
platform: '0'
puzzle: '0'
rpg: '0'
strategy: '0'
sports: '0'
casino: '0'
board: '0'
utility: '1'
misc: '0'
compatibility: bb
image: null
fileSize: '1'
fileSizeUnit: '2'

Routine Summary

This routine randomly selects a number given a list of partial probabilities

Inputs

L₁ - The bin sizes of the partial probabilities

Outputs

C - Which bin is selected

Variables Used

The variables used in the routine.

L₁, L₂, X, U, S, L, T, C,E

Calculator Compatibility

TI-83/84/+/SE/CSE/CE

Author

Trenly

L₁→L₂
sum(L₂→X
Xˉ¹→U
U→S
DelVar LDelVar C
rand→T
For(E,1,dim(L₂
While L₂(E) and not(C
If L≤T and U≥T
Then
E→C
Else
L₂(E)-1→L₂(E
U+Xˉ¹→U
L+Xˉ¹→L
End
End
End
C


This routine takes a single list, and randomly selects an element according to the bin sizes in the list. It copies the list so as to not overwrite the data. It then sums the list, and takes the inverse of the sum to use as an interval. It then generates a random number between 0 and 1. By testing if this number falls within the intervals defined by each partial probability, it determines which bin the random number falls into.

As an example, if the input is {4,11,2,3} there is a 4/20 chance that Bin 1 is chosen, an 11/20 chance for bin 2, 2/20 for bin 3, and 3/20 for bin 4. If a bin size is 0, it will be skipped and never selected as the probability is 0.

• Create the memory setup for the AI
• Create the Code for the AI to recall the gameboard partial probabilities
• Create the code for remembering which gameboards were recalled and which moves were played
• Create the code for adjusting the partial probabilities for each gameboard
• Create the AI - Created the selection already
• Implement the AI

Main Naughts and Crosses Engine: (Player vs Player)

SetUpEditor ʟM,ʟMC
{0→ʟM
{0→ʟMC
StoreGDB GDB1
AxesOff
GridOff
CoordOff
Full
LabelOff
ExprOff
RectGC
Normal
Func
63→Ymax:0→Ymin
93→Xmax:0→Xmin
ClrDraw
Text(⁻1,2,14,"M.E.N.A.C.E.
Line(29,49,65,49
Line(65,49,65,13
Line(65,13,29,13
Line(29,13,29,49
Line(32,47,62,47
Line(31,46,63,46
Line(63,46,63,16
Line(62,47,62,15
Line(62,15,32,15
Line(61,15,33,15
Line(31,16,31,46
Line(32,15,32,47
Line(42,45,42,15
Line(52,45,52,15
Line(33,25,61,25
Line(33,36,61,36
19→H
35→V
1→P
Repeat dim(ʟM)=10
1→T
If fPart(dim(ʟM)/2):2→T
Line(H+14,V+2,H+22,V+2
Repeat sum(K={45,21,105
Repeat sum(K={45,21,105,24,25,26,34
getKey→K
End
If K=45:Stop
If sum(K={24,25,26,34:Then
Line(H+14,V+2,H+22,V+2,0
P+(K=26)(P<9)-(K=24)(P>1)+3(K=34)(P≤6)-3(K=25)(P≥4)→P
P/3
If Ans≤1:35→V
If Ans≤2:24→V
If Ans≤3:14→V
If sum(P={1,4,7
19→H
If sum(P={2,5,8
29→H
If sum(P={3,6,9
39→H
Line(H+14,V+2,H+22,V+2
End
End
If (K=105)not(sum(P=ʟM:Then
P→ʟM(1+dim(ʟM
Line(H+14,V+2,H+22,V+2,0
P/3
If Ans≤1:19→G
If Ans≤2:29→G
If Ans≤3:39→G
If sum(P={1,4,7
35→U
If sum(P={2,5,8
46→U
If sum(P={3,6,9
56→U
Text(⁻1,G,U,sub("OX",T,1)
expr(sub("020305071113171923",2P-1,2))→ʟMC(dim(ʟM
If dim(ʟMC)≥6:Then
1→A
For(E,2,dim(ʟMC),2
AʟMC(E)→A
End
If not(sum(not(fPart(A/{30,1001,7429,238,627,1495,506,935}):Then
1→A
For(E,3,dim(ʟMC),2
AʟMC(E)→A
End
End
sum(not(fPart(A/{30,1001,7429,238,627,1495,506,935})→W
If W:10→dim(ʟM
End
End
End
If not(W:Then
Text(⁻1,52,23,"TIE GAME!
Pause
Else
If T=2:Text(⁻1,52,15,"CROSSES WIN!
If T=1:Text(⁻1,52,15,"NAUGHTS WIN!
If T:Pause
End
RecallGDB GDB1
ClrDraw
ClrHome


Partial Probability Selection:
ʟPROB→ARRAY
sum(ARRAY→X
Xˉ¹→U
U→S
DelVar LDelVar C
rand→T
For(E,1,dim(ʟARRAY
While ʟARRAY(E) and not(C
If L≤T and U≥T
Then
E→C
Else
ʟARRAY(E)-1→ʟARRAY(E
U+Xˉ¹→U
L+Xˉ¹→L
End
End
End
C→P


Routine Summary

Finds a sublist within a list, with different degrees of specificity.

Inputs

L₁ - List to search
L₂ - Sublist

Outputs

Ans - Initial index of sublist in L₁*
L₃ - Indices of L₁ which match the sublist*

*See individual routines for details

Variables Used

L, X*

*Only used for gapped sublist searching

Calculator Compatibility

TI-83/84/+/SE/CSE/CE

Author

kg583

# Find Exact Sublist (Permutation)

For a sublist stored in L₂, this routine will find where in L₁ the precise sublist (in order, no gaps) is found and return the initial index as Ans (0 if not found).

:For(L,1,1+dim(L₁)-dim(L₂
:L
:If min(L₂=seq(L₁(X),X,L,L-1+dim(L₂
:Return
:End
:0


# Find Sublist with Gaps (Permutation w/ Gaps)

For a sublist stored in L₂, this routine will find if the ordered sublist is found, with gaps between entries allowed, in L₁ and return 1 or 0 as Ans.

:1→X
:For(L,1,dim(L₁))
:If L₁(L)=L₂(X
:X+1→X
:1
:If X>dim(L₂
:Return
:End
:0


Alternatively, a few extra lines will return the matching indices as L₃.

:1→X
:ClrList L₃
:For(L,1,dim(L₁
:If L₁(L)=L₂(X:Then
:L→L₃(X
:X+1→X
:End
:If X>dim(L₂
:Return
:End


# Find Shuffled Sublist (Combination)

For a sublist stored in L₂, this routine will find where in L₁ any shuffling (without gaps) of the sublist is found and return the initial index as Ans (0 if not found).

:For(L,1,1+dim(L₁)-dim(L₂
:L
:If prod(seq(max(L₁(X)=L₂),X,L,L-1+dim(L₂
:Return
:End
:0


# Find Shuffled Sublist with Gaps (Combination w/ Gaps)

For a sublist stored in L₂, this routine will find if any shuffling with gaps of the sublist is found in L₁ and return 1 or 0 as Ans.

:prod(seq(max(L₁=L₂(X)),X,1,dim(L₂


Alternatively, two extra lines will return the matching indices as L₃.

:prod(seq(max(L₁=L₂(X)),X,1,dim(L₂
:If Ans
:seq(1+sum(not(cumSum(L₁=L₂(X)))),X,1,dim(L₂→L₃


Routine Summary

Finds specific text in a string and replaces all occurrences with replacement text.

Inputs

Str1 - The main string to modify
Str2 - What to search for
Str3 - What to replace with

Outputs

Str1 - the modified string

Variables Used

Str1, Str2, Str3, I, J

Calculator Compatibility

TI-83/84/+/SE/CSE/CE

Authors

Michael2_3B

URL: Cemetech

"SEARCH"->Str2
"REPLACE"->Str3
length(Str2->J
While inString(Str1,Str2
inString(Str1,Str2->I
Str3
If I>1
sub(Str1,1,I-1)+Ans
If I+J<1+length(Str1
Ans+sub(Str1,I+J,1+length(Str1)-(I+J
Ans->Str1
End


First, note that the input for the search string (Str2) and replacement string (Str3) can be modified for however you need them to be input. In this case, the texts "SEARCH" and "REPLACE" have been used as examples for these 2 strings.

To start off, we first store the length of the search string in variable J. Then, we check if the search string can be found in the main string. If not, the loop doesn't continue to run. Otherwise, we store the index in the string where the search string was found in variable I.

After this, we have to account for 3 distinct options:
1. The search string was found at the beginning of the main string
2. The search string was found at the end of the main string
3. The search string was found somewhere in the middle of the main string

So, we first put Str3 in Ans.
Then, if some of the string exists before the search string (so I>1), we add the replacement string in Ans onto that text.
After that, we check if the string exists after the search string (so I+J<1+length(Str1)), and if so, we add the rest of the text onto Ans.

After modifying the string like this, the program then checks if there are any more occurrences of the search string in the main string. If so, this whole process is repeated over.

Command Summary

Calculates the binomial cumulative probability, either at a single value or for all values

Command Syntax

for a single value:
binomcdf(trials, probability, [lower_bound,] upper_bound)

for a list of all values (0 to trials)
binomcdf(trials, probability)

From inside a document:
Press Menu, then scroll to probability.
Press the right arrow, then scroll to Distributions.
Press the right arrow, then scroll to Binomial Cdf (B)

This command is used to calculate the binomial cumulative probability function. In plainer language, it solves a specific type of often-encountered probability problem, that occurs under the following conditions:

1. A specific event has only two outcomes, which we will call "success" and "failure"
2. This event is going to repeat a specific number of times, or "trials"
3. Success or failure is determined randomly with the same probability of success each time the event occurs
4. We're interested in the probability that there are at most N successes

For example, consider a couple that intends to have 4 children. What is the probability that at most 2 are girls?

1. The event here is a child being born. It has two outcomes "boy" or "girl". In this case, since the question is about girls, it's easier to call "girl" a success.
2. The event is going to repeat 4 times, so we have 4 trials
3. The probability of a girl being born is 50% or 1/2 each time
4. We're interested in the probability that there are at most 2 successes (2 girls)

The syntax here is binomcdf(trials, probability, value). In this case:

binomcdf(4,.5,2)


This will give .6875 when you run it, so there's a .6875 probability out of 4 children, at most 2 will be girls.

If you wanted the probability that at least 1 and at most 2 will be girls, the syntax would be:

binomcdf(4,.5,1,2)


Another alternate syntax for binomcdf( leaves off the last argument, value. This tells the calculator to compute a list of the results for all values. For example:

:binomcdf(4,.5


This will come to {.0625 .3125 .6875 .9375 1} when you run it. These are all the probabilities we get when you replace "at most 2 girls" with "at most 0", "at most 1", etc. Here, .0625 is the probability of "at most 0" girls (or just 0 girls), .3125 is the probability of at most 1 girl (1 or 0 girls), etc.

Several other probability problems actually are the same as this one. For example, "less than N" girls, just means "at most N-1" girls. "At least N" girls means "at most (total-N)" boys (here we switch our definition of what a success is). "No more than", of course, means the same as "at most".

# Related Commands

[[row]]
[[cell style="text-align: center;background: #f4f4f4;padding: 5px 10px;"]]{$number}[e{$number}][[/cell]]
[[cell style="background: #f4f4f4;padding: 5px 10px;"]]{$description} {$moreinfo}
[[/cell]]
[[/row]]

[[row]]
[[cell style="text-align: center;padding: 5px 10px;"]]{$number}[e{$number}][[/cell]]
[[cell style="padding: 5px 10px;"]]{$description} {$moreinfo}
[[/cell]]
[[/row]]

[[row]]
[[cell style="text-align: center;padding: 5px 10px;"]]{$name}[{$reference}][[/cell]]
[[cell style="padding: 5px 10px;"]]{$description} {$moreinfo}
[[/cell]]
[[/row]]

[[row]]
[[cell style="text-align: center;background: #f4f4f4;padding: 5px 10px;"]]{$name}[{$reference}][[/cell]]
[[cell style="background: #f4f4f4;padding: 5px 10px;"]]{$description} {$moreinfo}
[[/cell]]
[[/row]]

Command Summary

Returns the absolute value of a number

Command Syntax

abs(Number)

This command can be used to return the absolute value of a number, or an expression which evaluates to a number.

⁻5→X
abs(x)

Outputs: 5


# Optimization

This section includes both ways to optimize use of the command, and other common pieces of code that this command can replace in an optimization. Make sure to mention if the optimization improves speed of the program, size, or both. Sample code should be included too, preferably in the following format:

If X<0
Then
⁻X→X

can be

abs(X)→X


NOTE: Due to the limitations of the wiki markup language, the {$cmd} command on this page does not appear as it would on the calculator. See Wiki Markup Limitations for more information. Another page that should be created similar to wiki-limits Unfortunately, the rich vocabulary of wiki syntax doesn't allow to properly display a command in titles and code blocks. When this happens, the offending page will link here so we can properly apologize, clarify what is meant, and give the syntax that displays them correctly where it is possible to do so. Here are the commands and symbols that suffer from this problem: # See Also This page should contain a list of all the errors from the ti-nspire. Would like it set up similarly to errors This table lists all the possible error messages that can occur. Some error messages are very explicit (like "Missing Parentheses" ), but others are less so. Where the error message itself gave too little information, this table explains the error more thoroughly. Errors need to be added to the table below. Please alternate between using error1 and error2  Error Description Missing Parentheses The function entered requires parentheses The arguments for this function must be enclosed in parentheses. test A test description Testing moreinfo (1) $${eqn}$$ Command Summary {$summary}

Command Syntax

{$syntax} Menu Location {$location}

{compatibility} [[include inc:nspire-command-help |picture=@@ |summary=@@ |syntax=@@ |compatibility@@ ]] In general, omitting all the variables for a section is the way to go if you don't want the section to be displayed. The exception is "calculator compatibility" - omitting the variables for that section will display the default message (compatible with all calculators). ## |picture= If the image is embedded on the same page, then only the full name of the image is to be written here. Otherwise, simply paste the full URL of the image. ## |summary= Just type in a brief description of the command. ## |syntax= Enter the general syntax of the command. ## |compatibility If the command works on all calculators, simply say "All calculators." Otherwise, specify which calculator(s) the command is compatible with. Only one option can be applied (and they are exclusive of each other), otherwise unpredictable results may occur. Command Summary A short description of what the command does. Command Syntax The generic syntax of calling the command, with arguments. Menu Location Describe how to get the command from a menu. (Include this disclaimer if command xxxxx doesn't appear correctly due to markup limitations. See iff for an example) NOTE: Due to the limitations of the wiki markup language, the xxxxx command on this page does not appear as it would on the calculator. See Wiki Markup Limitations for more information. A complete description of the basic uses of the command. All commonly used and documented ways of calling the command should be listed here; inputs, outputs, and anything else important should be mentioned. :At least one piece of example code :should be included here.  # Advanced Uses Advanced uses include rarely used or undocumented ways of calling the command in question. If there's an unusual but effective way of using the command, that too should be listed. Another type of advanced use is a programming technique to which the command is critical. Finally, system variables modified by the program should be listed here. With each advanced use, you should have a piece of example code to show how it works, as well as an explanation. If there is already a page on the advanced use of the command, give a short synopsis, then link to that page - you shouldn't include the entirety of that page here. Separate unrelated advanced uses with a horizontal bar. # Optimization This section includes both ways to optimize use of the command, and other common pieces of code that this command can replace in an optimization. Make sure to mention if the optimization improves speed of the program, size, or both. Sample code should be included too, preferably in the following format: :unoptimized code can be :optimized code  # Formulas (this section is usually not present) This section is unnecessary for most commands. The only ones that would require it are the ones on the high end of mathematical complexity, such as the statistics commands. Use the math template to type in a LaTeX formula that matches the rest of the page in background. For example, type [[include inc:nspire-math eqn = \sum_{i=1}^n\frac{a}{r^i}]] to get: (1) \begin{align} \sum_{i=1}^n\frac{a}{r^i} \end{align} # Error Conditions For the non-generic errors that might occur when using this command (that is, syntax-type errors shouldn't be included). In a format similar to the following: • ERR:DIM MISMATCH is thrown if the two list arguments have different dimensions. • ERR:RESERVED is thrown if ∟RESID is supplied as an argument. # Related Commands Several (around 3) commands have a similar function or are used in a similar context to this command. Make a bulleted list of them, with links to the other commands' pages. It will often be the case that several commands all link to each other. • Command 1 • Command 2 • Command 3 # See Also (this section is usually not present) If a command can be used in a particular design concept or technique, you should mention it and provide a link to its respective page. This section should come at the end of the page, and be a bulleted list that contains all of the design or technique related links mentioned throughout the page. • Design Concept 1 • Design Concept 2 • Technique 1  May 21 — Congratulations to TI-BD user Trenly for being promoted to Administrator! author: 'Bio_Hazard1282' version: '1' summary: 'Math Equation Puzzle Solver is a simple game you''ll just want to play when you''re bored. To win, you need to create an equation with the specific length and answer. ' description: "[[code]]\nClrHome\nAxesOff\nZStandard\nZInteger\nFnOff\nPlotsOff\n1→Xmin:100→Xmax\nText(0,1,\"Equation Puzzle solver //You can use uppercase letters too, to save bytes\nFor(I,0,94\nFor(J,0,6\nPxl-Change(J,I\nEnd\nEnd\nthe end statements\nText(7,0,\"Create an equation with:\nrandInt(10,20→R //A random number between 10 and 20 is generated to determine\nthe number of rounds\nFor(I,1,R\nrandInt(5,50→L //Required length of the equation\nrandInt(1,1000→N //Required answer of the equation\nText(13,0,\"Length of: \",L\nText(19,0,\"Answer of: \",N\nRepeat L=length(Str1) and N=G\nInput \"Equation:***\",Str1 //Replace the asterisks with spaces.\nClrHome\nIf length(Str1)≠L:Then\nDisp \"Equation Length\",\"MUST be:\",L\nPause\nEnd\nexpr(Str1→G\nIf N≠G:Then\nDisp \"Equation Answer\",\"does not equal:\",N\nPause\nEnd\nEnd\nFor(I,7,0,-1\nLine(Xmin,I,Xmax,I,0\nLine(Xmin,-I,Xmax,-I,0\nEnd\niPart(I/R*100\nLine(0,Ymin,Ans,Ymin\nEnd\nPause\nFull\n\"Math Equ. Solver\n[[/code]]" arcade: '0' graphics: '0' platform: '0' puzzle: '1' rpg: '0' strategy: '0' sports: '0' casino: '0' board: '0' utility: '0' misc: '1' compatibility: bb download: 'archivefile:eqnpuz/EQNPUZ.8xp' image: null fileSize: '544' fileSizeUnit: '1' dateMade: '1526274000' author: 'Justin Wales' version: '1.0' summary: 'This program disables the [ON] button' description: "Ever wanted a program with the [ON] button disabled? This program is for you! View this file on ti-calc.org\n\n\nSOURCE CODE (z80):\n[[code]]\n.nolist\n#include \"ti83plus.inc\"\n.org userMem-2\n.dbBB,$6D\n.list\n\n bcall(_RclAns)\n bcall(_ConvOp1)\n ld a,e\n or a\n jr z,Install_Interrupt\n dec a\n ret nz\nUninstall_Interrupt:\n im 1\n ret\nInstall_Interrupt:\n\n di\n ld hl,$9900\n ld de,$9901\n ld bc,256\n ld (hl),$9a\n ldir\n\n ld hl,interrupt_start \n ld de,$9a9a \n ld bc,interrupt_end-interrupt_start \n ldir \n ld a,$99\n ld i,a \n im 2 ;switch to mode 2\n ei ;enable interrupts\n ret\n\nInterrupt_Start:\n ex af,af'\n exx\n in a,($03)\n and %11111110\n out ($03),a\n call $003A\n reti\nInterrupt_End:\n.end\n[[/code]]" arcade: '0' graphics: '0' platform: '0' puzzle: '0' rpg: '0' strategy: '0' sports: '0' casino: '0' board: '0' utility: '1' misc: '1' compatibility: bb download: 'archivefile:onblock/onblock.zip' image: null fileSize: '139' fileSizeUnit: '1' dateMade: '1078639200' author: Bio_Hazard1282 version: '1.0' summary: 'You are an explorer in a very deep forest, and you need to escape it to civilization. You are on your motorcycle, your only way of transportation. Unless you prefer walking. Can you beat the high score? Good luck!' description: "You are an explorer in a very deep forest, and you need to escape it to civilization. You are on your motorcycle, your only way of transportation. Unless you prefer walking. Can you beat the high score? Good luck!\n--\nSource code:\n[[code]]\nPROGRAM:FRUN\nClrHome\nClrDraw\nAxesOff\nZStandard\nZInteger\nPlotsOff\nFnOff\nSetUpEditor FRUN\n2→dim(⸤FRUN\nText(44,0,\"FOREST ESCAPE\nText(51,6,\"HIGH DISTANCE: \",⸤FRUN(1),\"m //meters (metres if your in a different region)\nText(57,2,\"TOTAL DISTANCE: \",⸤FRUN(2),\"m\nPause\nDelvar DDelvarG47→X\nRepeat K=45 or pxl-Test(31,X\ngetKey→K\nPxl-On(31,X\nAsm(prgmDOWN\nD+1→D\nIf max(K={24,26,25\nK→G\nIf K=105:Pause\nX+(G=26)-(G=24→G\nX+95(X=-1)-95(X=95→X\nText(0,randInt(0,94),\"Y\nEnd\nIf D>⸤FRUN(1\nD→⸤FRUN(1\n⸤FRUN(2)+D→⸤FRUN(2\nText(44,2,\"HIGH DISTANCE: \",⸤FRUN(1),\"m\nText(44,2,\"TOTAL DISTANCE: \",⸤FRUN(2),\"m\nPause\nClrDraw\nClrHome\n[ //Shift screen down one pixel level\n[[/code]" arcade: '1' graphics: '0' platform: '0' puzzle: '0' rpg: '0' strategy: '0' sports: '0' casino: '0' board: '0' utility: '0' misc: '0' compatibility: bb download: 'archivefile:forst-escape-1/Forst_Escape.txt' image: null fileSize: '783' fileSizeUnit: '1' dateMade: '1524808800' Routine Summary Sorts a list based on frequency, then by value Inputs L₁ - A list to be sorted Outputs L₁ - The original list, sorted by frequency of elements Variables Used L₁, L₂, L₃ Calculator Compatibility TI-83/84/+/SE/CSE/CE Author Trenly SortD(L₁ DelVar L₂DelVar L₃ SetUpEditor For(θ,1,dim(L₁ L₁(θ→L₂(1+dim(L₂ sum(L₁=Ans→L₃(dim(L₂ θ-1+Ans→θ End DelVar L₁ SetUpEditor While dim(L₂ 1+sum(not(cumSum(L₃=max(L₃→θ L₃(θ)→N For(E,1,N L₂(θ→L₁(1+dim(L₁ End For(E,θ+1,dim(L₂ L₂(E→L₂(E-1 L₃(E→L₃(E-1 End dim(L₂)-1→dim(L₂ dim(L₃)-1→dim(L₃ End  This routine uses the List Frequency routine to find the frequency of each number. It then deletes, and reconstructs L₁ from the values in those lists by searching for the highest frequency, then adding it into L₁ the number of times it occurs. It then shifts the elements inside the frequency lists above the value down 1, overwriting the value which was just inserted into L₁. It then decreases the length of the frequency lists, and repeats until there are no more values to be added. This routine automatically cleans up, leaving L₂ and L₃ empty. If you wish to sort in ascending frequency, change the max( on line 12 to min(. If you wish to sort the values in ascending order instead of descending order, change the SortD( on line 1 to SortA( # Error Conditions # Related Routines Routine Summary This routine is used for creating complex graphical menus. It can have hundreds of sub-menus, and works quite similarly to a menu on the home screen. Inputs Str1 - A list of menu options, each being of length L L - The length of the sub-strings for the current menu N - The number of options in the current menu O - The menu identifier S - The current item/row selected Outputs The variable(s) that the routine stores to at the end. O - The menu identifier S - The current item/row selected Variables Used Str1 - A list of menu options, each being of length L L - The length of the sub-strings for the current menu N - The number of options in the current menu O - The menu identifier S - The current item/row selected K - A keystroke identifier Xmin - Graph Settings Xmax - Graph Settings Ymin - Graph Settings Ymax - Graph Settings Theta - For Loop Counter Z - For Loop Counter GDB1 - Cleanup Variable Calculator Compatibility TI-83/84/+/SE Author Trenly StoreGDB 1 Lbl M0 ClrDraw AxesOff GridOff ClrHome 62→Ymax:0→Ymin 94→Xmax:0→Xmin "1:Option 2:Option3:Option "→Str1 0→O:1→S:8→L:3→N Lbl M Text(0,0,"Custom Menu Beta 0.1" Horizontal Ymax-7 For(θ,0,N-1 Text(8+7θ,0,sub(Str1,1+Lθ,L) End Horizontal Ymax-9-7N For(θ,6,1,⁻1 For(Z,0,4 Pxl-Change(8+7S-θ,Z End End Repeat sum(K={23,45,105 Repeat sum(K={23,45,105,34,25,72,73,74,82,83,84,92,93,94 getKey→K End If K=34(S<N) or K=25(S>1 Then For(θ,6,1,⁻1 For(Z,0,4 Pxl-Change(8+7S-θ,Z End End S+(K=34)-(K=25)→S For(θ,1,6 For(Z,0,4 Pxl-Change(8+7S-θ,Z End End End If sum(K={72,73,74,82,83,84,92,93,94 Then K-13int(K/13(2>abs(5-abs(5-abs(K-83 If Ans≤N and Ans>0 Then Ans→S 105→K End End End ClrDraw ClrHome If (K=23)O:Goto M0 If (K=23)not(O:Goto E If K=45:Goto E If (O=0)(S=1:Goto M1 If (O=0)(S=2:Goto M2 --Add an if statement here for each option you have-- -- O defines which menu you are currently in -- -- S defines the option they selected -- Lbl E ClrDraw RecallGDB 1 ClrHome Return  This menu is made for the graphscreen on monochrome calculators. It functions similarly to the Menu( command, in that it highlights the current menu option, and uses labels. To create your own menus, each menu needs a menu id, a string containing entries of the same length, the number of entries, the length of the entries, and the starting selection. What makes this code functional is that each menu option is referenced by a menu ID, and the number of the selection. Because of this, the same code can be used to display multiple menus. In addition to the up and down arrows and enter, a user can use the numberpad to select an option. The clear key will exit the program from any menu, and the delete key will return to the main menu from inside any menu. If the delete key is used on the main menu, the program will end. The main menu has an ID of 0 by default, and can be shown at any time using "Goto M0". Any sub-menus you wish to add should be in the following format. You will need to change O, L, and N for each menu. In the code below, O is set to 1. This is what gets referenced in the If statements in the main code. S is set to 1 since I want the first option to be selected when we load the menu. L is set to 22 in this example because each menu option is 22 characters long. You will notice there are spaces included to make sure each item is the same length. Finally, there are 6 options in this example, so N is set to 6. We then Goto M to display the menu Lbl M1 "1:Kilograms◄ ►Lbs 2:Meters◄ ►Feet 3:ElectronVolt◄ ►Joule4:Joule◄ ►Calorie 5:Horsepower◄ ►Watt 6:Back →Str1 1→O:1→S:22→L:6→N Goto M  # Error Conditions # Related Routines You are an explorer in a very deep forest, and you need to escape it to civilization. You are on your motorcycle, your only way of transportation. Unless you prefer walking. Good luck! PROGRAM:FRUN ClrHome ClrDraw AxesOff ZStandard ZInteger PlotsOff FnOff SetUpEditor FRUN 2→dim(⸤FRUN Text(44,0,"FOREST ESCAPE Text(51,6,"HIGH DISTANCE: ",⸤FRUN(1),"m //meters (metres if your in a different region) Text(57,2,"TOTAL DISTANCE: ",⸤FRUN(2),"m Pause Delvar DDelvarG47→X Repeat K=45 or pxl-Test(31,X getKey→K Pxl-On(31,X Asm(prgmDOWN D+1→D If max(K={24,26,25 K→G If K=105:Pause X+(G=26)-(G=24→G X+95(X=-1)-95(X=95→X Text(0,randInt(0,94),"Y End If D>⸤FRUN(1 D→⸤FRUN(1 ⸤FRST(2)+D→⸤FRST(2 Text(44,2,"HIGH DISTANCE: ",⸤FRUN(1),"m Text(44,2,"TOTAL DISTANCE: ",⸤FRUN(2),"m Pause ClrDraw ClrHome  PROGRAM:DOWN :AsmPrgm213396113F9601F402EDB823010C00EF304CEF6A48C9 //Shift screen down one pixel level  author: master_programmer version: '1.0' summary: '' description: 'Simple slots game that took me 1 week to make. It uses 20 programs total, 19 sub programs, 2 custom lists, and adds and takes away coins. If your 1m+ coins disappear, dont worry! They were just stored in the second list so that the coin count wont overflow into the next row. I will post updates for the program as well, so stay tuned!' arcade: '1' graphics: '0' platform: '0' puzzle: '0' rpg: '0' strategy: '0' sports: '0' casino: '1' board: '0' utility: '0' misc: '0' compatibility: bb download: null image: null fileSize: '2097' fileSizeUnit: '1' dateMade: '1523941200'  Apr 23 — The new chat is available for use by the TI-BD community! This chat should be more secure than the last one. Example of Inputting Hex Code There are all sorts of small assembly programs that you can create simply using the calculator's built-in assembly commands (specifically, AsmPrgm84C and AsmPrgmCE), along with the appropriate hexadecimal code. In order to run a program, you need to use the Asm( command, where Asm(prgmPROGNAME is the program that contains the hexadecimal code. As a word of caution, when entering in the hexadecimal, you need to be very careful that you type it in exactly as you see it. If there is a single incorrect character, the calculator might crash and reset your RAM when you turn it on again. We have tested the hexadecimal codes to make sure they work, but it's up to you to enter them in correctly.  Table of Contents # Turn Off LCD :AsmPrgm84CE :3E01321900E3C9  # Turn On LCD :AsmPrgm84CE :3E09321900E3C9  This is the same as the code for turning off the LCD, except that the 01 is a 09 instead. # Set LCD Brightness :AsmPrgm84CE :CD500F02CD700F02322400F6C9  Set the brightness to a value between 0 and 255 stored in Ans, 255 is low, 0 is high. # Enable Lowercase Letters :AsmPrgm84CE :FDCB24DEC9  author: coltonj96 version: '0.1' summary: 'A Fancy Analog Clock!' description: 'Has fancy looking hands and is first in a series of fancy clocks I plan to make' arcade: '0' graphics: '1' platform: '0' puzzle: '0' rpg: '0' strategy: '0' sports: '0' casino: '0' board: '0' utility: '1' misc: '1' compatibility: ff download: 'archivefile:aclock-2/ACLOCK.8xp' image: 'archiveimage:aclock-1/AClock.png' fileSize: '1328' fileSizeUnit: '1' dateMade: '' author: Bio_Hazard1282 version: '' summary: 'Tally counter is a program that allows you to count a number forever. You are able to count (obviously), set the counter value, and it''s increment. This version below is the modified version of the alternative. Make sure you understand and think through the code.' description: "[[code]]\nClrHome\nCLASSIC //Ignore this if you do not have the TI-84+ Series, this is added to improve performance. Performance is high already with the normal TI-83+\nSetUpEditor COUNT\nIf 0=dim(⸤COUNT\n{0,1→COUNT //Many users insert the \"⸤\" in front of the name, we remove it to save a byte\n⸤COUNT(1\nLbl M\nMenu(\"Tally Counter\",sub(\"Start***Continue\",1+8(Ans>0),8),1,\"Reset\",2,\"Set\",3,\"Value\",4,\"Quit\",5 //Replace asterisks with spaces\nLbl 1\n⸤COUNT(1→C\nOutput(1,1,C\nPause\nRepeat getKey\nC+⸤COUNT(2→C\nOutput(1,1,C\nrand(20\nEnd\nPause\nGoto M\nLbl 2\nMenu(\"Reset?\",\"No\",M,\"Yes\",Y\nLbl Y\n{0,1→COUNT\nGoto M\nLbl 3\nClrHome\nMenu(\"Set\",\"Value\",V,\"Increment\",I,\"Cancel\",M\nLbl V\nInput \"Value:\",C //It does not matter if we still use the C variable, since the main feature of this program changes it anyways\nabs(iPart(C→⸤COUNT(1\nGoto 3\nLbl I\nInput \"Increment:\",C\nabs(iPart(C→⸤COUNT(2\nGoto 3\nLbl 4\nDisp \"You are on:\",⸤COUNT(1\nPause \nGoto M\nLbl 5\nArchive ⸤COUNT\n[[/code]]\n\n* 36 lines of code\n* Available to all graphing calculators TI-Basic friendly\n* Easy to read and understand\n* Fully programed in TI-Basic \n\n+ Alternative\nThe only difference between this version and the other one, it just counts. No menus, no \"36 lines of code\". It still has the list, with only the tally counter value.\n\n[[code]]\nClrHome\nSetUpEditor COUNT\n⸤COUNT(1→C\nOutput(1,1,C\nPause\nRepeat getKey\nC+1→C\nOutput(1,1,C\nrand(20\nEnd\nPause\nClrHome\nArchive ⸤COUNT\n[[/code]]\n--\nWell, that wraps up the tally counter program. Enjoy! If you have any questions or comments, please click the discuss button below.\n" arcade: '0' graphics: '0' platform: '0' puzzle: '0' rpg: '0' strategy: '0' sports: '0' casino: '0' board: '0' utility: '0' misc: '1' compatibility: bb download: 'archivefile:tally-counter/Tally-Counter.docx' image: 'archiveimage:51qv97b6lpl-sy355/51QV97B6lPL_SY355_.jpg' fileSize: '950' fileSizeUnit: '1' dateMade: '' # Introduction Celtic III is a Flash Application for the TI-83 Plus, TI-83 Plus Silver Edition, TI-84 Plus, and the TI-84 Plus Silver Edition graphing calculators, designed to extend the functionality of these calculators so that BASIC games and utilities can perform actions that cannot easily be done through the language itself. Celtic III supports its own command set focused more on file handling and manipulation. It also supports a command set used for manipulating image files and screen data. It also supports decent compatibility with the popular xLIB library so you don't have to change anything.1 # How To Use The ListPages module does not work recursively. The ListPages module does not work recursively. author: 'AravenFtw Luke' version: '' summary: "A fake virus program. Source code is below\n" description: "[[code]]\n0→X\nClrHome\nLbl 1\nOutput(1,5,\"WARNING!\"\nOutput(2,1,\"1 virus found on\nOutput(3,1,\"your machine.\nOutput(5,2,\"Remove viruses\nOutput(6,2,\"Reinstall TI-OS\nOutput(8,3,\"Navigate  \"\n0→A\nRepeat X=100\ngetKey→X\nIf A=0:Output(5,1,\"\"\nIf X=34 and A=0:Then:1→A:Output(5,1,\" \"):End\nIf A=1:Output(6,1,\"\"\nIf X=25 and A=1:Then:0→A:Output(6,1,\" \"):End\nIf A=0 and X=105:Goto 3\nIf A=1 and X=105:Goto 2\nEnd\nStop\nLbl 2\nClrHome\n0→A\nOutput(1,1,\"Reinstall TI-OS?\nOutput(2,1,\"Continuing will\nOutput(3,1,\"delete all data\nOutput(4,1,\"and programs.\nOutput(7,2,\"Cancel\nOutput(8,2,\"Reinstall OS\nRepeat X=100\ngetKey→X\nIf A=0:Output(7,1,\"\"\nIf X=34 and A=0:Then:1→A:Output(7,1,\" \"):End\nIf A=1:Output(8,1,\"\"\nIf X=25 and A=1:Then:0→A:Output(8,1,\" \"):End\nIf A=0 and X=105:Then:ClrHome:Goto 1:End\nIf A=1 and X=105:Goto 4\nEnd\nStop\nLbl 4\nClrHome\nOutput(1,1,\"Resetting…\nFor(X,1,10000):End\nClrHome\nPause \"Memory Cleared\"\nGoto 84\nStop\nClrHome\nDisp \"Ti-34 MultiView\nLbl 84\nInput \"\",S\nDisp S\nGoto 84\nStop\n\n\n\n\n\n\n\n\n\nLbl 3\nClrHome\nOutput(1,1,\"Select payment\"\nOutput(2,1,\"type:\"\nOutput(4,2,\"Credit Card\"\nOutput(5,2,\"PayPay\"\nRepeat X=100\ngetKey→X\nIf A=0:Output(4,1,\"\"\nIf X=34 and A=0:Then:1→A:Output(4,1,\" \"):End\nIf A=1:Output(5,1,\"\"\nIf X=25 and A=1:Then:0→A:Output(5,1,\" \"):End\nIf A=0 and X=105:Goto 5\nIf A=1 and X=105:Goto 6\nEnd\nLbl 5\nClrHome\nDisp \"Credit Card #:\"\nInput \"\",Str1\nClrHome\nOutput(1,1,\"CREDIT CARD #:\"\nOutput(2,1,Str1\nOutput(4,1,\"COST:$150.99\nOutput(6,2,\"Continue\"\nOutput(7,2,\"Cancel\"\n0→A\nRepeat X=100\ngetKey→X\nIf A=0:Output(6,1,\"\"\nIf X=34 and A=0:Then:1→A:Output(6,1,\" \"):End\nIf A=1:Output(7,1,\"\"\nIf X=25 and A=1:Then:0→A:Output(7,1,\" \"):End\nIf A=0 and X=105:Goto 10\nIf A=1 and X=105:Goto 3\nEnd\nLbl 10\nrandInt(1,2)→X\nIf X=1:Goto 11\nLbl 11\nClrHome\nDisp \" TI-BASIC\nDisp \"Virus removal\nDisp \"failed. Your\nDisp \"machine will be\nDisp \"terminated.\nOutput(7,1,\"Press any key\nOutput(8,1,\"to continue…\nRepeat X=100\nEnd\nIf X=2:Goto 12\nStop\nLbl 6\nClrHome\nDisp \"PayPal ID#:\"\nInput \"\",Str1\nClrHome\nOutput(1,1,\"PayPal ID#:\"\nOutput(2,1,Str1\nOutput(4,1,\"COST: $150.99\nOutput(6,2,\"Continue\"\nOutput(7,2,\"Cancel\"\n0→A\nRepeat X=100\ngetKey→X\nIf A=0:Output(6,1,\"\"\nIf X=34 and A=0:Then:1→A:Output(6,1,\" \"):End\nIf A=1:Output(7,1,\"\"\nIf X=25 and A=1:Then:0→A:Output(7,1,\" \"):End\nIf A=0 and X=105:Goto 10\nIf A=1 and X=105:Goto 3\nEnd\nLbl 12\nClrHome\n\"VIRUS REMOVED!\n[[/code]]" arcade: '0' graphics: '0' platform: '0' puzzle: '0' rpg: '0' strategy: '0' sports: '0' casino: '0' board: '0' utility: '0' misc: '1' compatibility: bb download: 'archivefile:untitled1/Untitled1.8xp' image: 'archiveimage:justices/justices.gif' fileSize: '1797' fileSizeUnit: '1' dateMade: '' author: 'DJ_O? (Not confirmed) Uploader: Bio_Hazard1282' version: 'Lost Between times' summary: 'This game takes 98304 bytes of archive, and may crash. Be careful.' description: 'This game takes 98304 bytes of archive, and may crash. Be careful.' arcade: '1' graphics: '1' platform: '0' puzzle: '0' rpg: '1' strategy: '0' sports: '0' casino: '0' board: '0' utility: '0' misc: '0' compatibility: bb download: null image: null fileSize: '98304' fileSizeUnit: '1' dateMade: '' author: 'Sorunome ' version: UNKN summary: 'Join Reuben on an epic RPG fantasy adventure which includes tons of puzzles, side-quests, hidden things and much more!' description: 'Join Reuben on an epic RPG fantasy adventure which includes tons of puzzles, side-quests, hidden things and much more!' arcade: '1' graphics: '1' platform: '0' puzzle: '1' rpg: '1' strategy: '0' sports: '0' casino: '0' board: '0' utility: '0' misc: '0' compatibility: bb download: null image: null fileSize: '229' fileSizeUnit: '2' dateMade: '1482994800' author: 'Brian Coventry' version: 'zStart v1.3.013' summary: 'This app truly is the "Swiss army knife" of utility apps for the 84+.' description: 'This app truly is the "Swiss army knife" of utility apps for the 84+. zStart runs on every ram clear to setup your calculator environment to do just about anything you want. Features include: Mathprint/Classic, Degrees/Radians, Diagnostic On/Off, fixing lcd (ALCDFIX), setting contrast, running archived programs, editing archived programs, displaying 8 level grayscale picture on startup, running programs on ram clears/startup, custom fonts with an on-calc editor, enabling Axe, shortcut keys to run programs/compile axe programs/recall tokens, enabling omnicalc/catalog help, copy/paste, base conversions, molar mass calculations, 14% speed increase in basic programs, and more! Supports 83+!' arcade: '0' graphics: '0' platform: '0' puzzle: '0' rpg: '0' strategy: '0' sports: '0' casino: '0' board: '0' utility: '1' misc: '0' compatibility: bb download: 'archivefile:zstart/zstart.zip' image: 'archiveimage:zstart-example/zStart-Example.gif' fileSize: '253' fileSizeUnit: '2' dateMade: '1515913200' I think we all know what pacman is… I'm just new to this site and would love some help. In this tutorial, we are going to show you how to BOOT TEST your calculator. (Or self-test) What this does it "tests" to see if everything is working correctly on your calculator. Here are some things you need to know… • Doing this resets all of your RAM • This test may take a while to complete successfully • There may be a chance of your calculator displaying a message: "ROM Fail" Lets begin the test. Press "Mode", then "Alpha" + "Ln" . Your calculator will display something like this: Don't worry, it will only clear your RAM. Press "Enter" twice. It will show this. If it shows "ID fail", don't worry, it means there is no PRODUCT ID. Press enter. It will then show the amount of RAM that your calculator can hold maximum. Press enter. There will be a counter that will increment by 1 about 6 seconds every time. Press "On" to skip this part. The screen test will now be executed. This will see if all pixels are working correctly. Press on to skip, or enter to go into the next phase. FIRST IMAGE TEST: ) After, it will test if all keys are working correctly. Press the keys that match the corresponding key code that is on the screen. After, the test is over and a RAM cleared screen will be showed. Here is a clip of the test being performed on a TI-84+ SE. Test on a TI-84 Plus using Wabbitemu author: TI version: 2.55MP summary: "ROM of the TI-84 Plus Silver Edition ROM.\n" description: "ROM of the TI-84 Plus Silver Edition ROM.\nIf you would like to delete this archive, send me a message WHY you wanted to do this." arcade: '0' graphics: '0' platform: '0' puzzle: '0' rpg: '0' strategy: '0' sports: '0' casino: '0' board: '0' utility: '1' misc: '1' compatibility: bb download: null image: null fileSize: '2048' fileSizeUnit: '2' dateMade: '1515567600' This project is an attempt to recreate MENACE. This article describes MENACE in its entirety author: mattyjraps version: '1.0' summary: '' description: "This is a Mario game made pretty much in pure BASIC (except for an asm snippet to fix the bug with the Text() command, grr). Featuring 6 worlds, 5 enemy types, animated coin blocks, and MUCH more, this is a truly must-have for your calculator if you are at all interested at gaming. It is the first BASIC Mario game of its size (~14,000 bytes) and has good looking graphics on top of that. Yahoo! All instructions are included in the readme.\n\n" arcade: '1' graphics: '1' platform: '1' puzzle: '1' rpg: '0' strategy: '0' sports: '0' casino: '0' board: '0' utility: '0' misc: '0' compatibility: bb download: 'archivefile:mario-extreme/Mario-Extreme.zip' image: 'archiveimage:main-menu/main-menu.gif' fileSize: '0' fileSizeUnit: '1' dateMade: '' author: Trenly version: '1' summary: 'This page is just testing for the 504 error' description: 'Testing program and GIF uploading for the 504 error' arcade: '0' graphics: '0' platform: '0' puzzle: '0' rpg: '0' strategy: '0' sports: '0' casino: '0' board: '0' utility: '1' misc: '1' compatibility: bb download: 'archivefile:physic/PHYSIC.8xp' image: 'archiveimage:testgif/TESTGIF.gif' fileSize: '1262' fileSizeUnit: '2' dateMade: '1512540000' author: Michael2_3B version: '1.0' summary: 'Flood the board with a single color in the least amount of moves!' description: "Click the blocks to fill the board with a single color. See if you can do it within a specified amount of moves! You should catch on pretty quickly ;) More info in the readme. Original game: http://unixpapa.com/floodit\n\nThe flood algorithm may be a tiny bit slow, but that is due to the limits of TI-Basic." arcade: '1' graphics: '0' platform: '0' puzzle: '1' rpg: '0' strategy: '1' sports: '0' casino: '0' board: '0' utility: '0' misc: '0' compatibility: ff download: 'archivefile:floodit/FloodIt.zip' image: 'archiveimage:002929/002929.gif' fileSize: '4' fileSizeUnit: '2' dateMade: '1512540000' When programming, you may find that you want to execute a piece of code based on if another section of code has been executed. The easiest way to do this is to use a flag. What exactly is a flag? A flag is typically considered a placeholder or variable which contains a binary or Boolean value. In TI-Basic, it is typically a variable which holds a value of 0 or 1. This variable is called a flag because it is either up (1), or down (0). Flags can be very useful when used in the proper circumstance; They can help prevent double conditionals, allow for the program to behave differently based on which sections of code it has already run, or even change what a program does altogether. Let's look at an example: prgmFLAG :0→F :Lbl 1 :Disp "Flag is" :If F:Disp "Up" :If not(F:Disp "Down" :1→F :If not(F:Goto 1  In the code above, we see a very basic flag. The flag is either up, 1, or down, 0. The program will display that the flag is down, set it to be up, then say that it is up before exiting. That's a great start, but how can flags be used in more useful ways? ## Recycled Flags Recycled flags are flags that are used more than once for the same purpose inside of a program. They are commonly used within loops, but can be used in other ways depending on what you are attempting to do. Consider the following: You have a variable A which you want to compare to B; If A is greater than B, you want to display a message. The only catch is, if A is greater than 50 you want to display a different message. This is a perfect place for a Recycled flag, especially if you want to repeat the comparison with different values. Take a look at the following code: prgmACOMPB :randInt(1,50→B :Repeat A=B :1→T :Prompt A :If A>50 :Then :Disp "A is Greater than 50" :0→T :End :If T(A>B):Disp "A is Greater than B" :If A<B:Disp "A is Less than B" :End  Did you understand how it worked? If not, let me walk you through it. As you may have guessed, this is a very simple guess the number game. First, we store a value to B. This value doesn't particularly matter, but we want it to be 50 or less for this game. We create a repeat loop that will run until we enter the value of B. Next, we set our flag. I put this flag setting inside the repeat loop, since we want it to reset every time we enter a new number. The program will then ask the user for a value of A to test, and now this is where the flag comes in. The program tests if A is above 50, in which case it would be out of the range of values of B. If A is greater than 50, it displays that and sets our flag to 0, or turns it off. The next conditional tests if A is greater than B. If A is greater than 50, it will always be greater than B, but since we already determined if it was greater than 50, we don't want to accidentally display a message twice. If you take a close look at the statement, we are testing "If T(A>B)" which can be rewritten as "If T and A>B" or even "If T≠0 and A>B". Lets step back and look at the values of when we compared A to 50. If A was greater than 50, T got set to 0; If A was less than or equal to 50, T was left as 1. This means that the statement we are testing will only be true if A is less than or equal to 50 based on the value in T. ## Solitary Flags The flag in the last example was a recycled flag, meaning we used it multiple times. This is debatably the most common form of flags. The other type of flag is a solitary flag, or a flag that is only used once. Perhaps the best example of this is a program where the author wants the user to do something before running the program. A flag may be used to allow the program to give instruction to the user before executing the code. If A Then ClrAllLists Output(1,1,"Please enter data in L₁ Delvar A Pause Return End Disp mean(L₁ 1→A  While this is another simple piece of code, it displays a solitary flag very well. This program displays the mean of L₁, however we know that if there is no data in L₁ this code will throw an error. Lists are one of the variables that cannot be directly stored to using input or prompt, and because of this we want to tell the user to enter their data into the list. This code checks to see if there is a value stored in A, and if there is it then tells the user to enter the data, sets the flag, and exits. The reason this code checks to see if there is a value in A rather than if there is not a value in A is due to the fact that there will be a value in A most of the time. This program, for the flag, sets A to 0 by deleting it once it has told the user where to enter the data. When the program is run again, presumably after they have entered their data, it will see that there is no value and will then display the mean of L₁ as intended before finally putting a value back into A so it can be run again. author: 'Unknown User' version: 3.7.66.43.25TI83 summary: 'A FREE emulator of a TI-83 Plus, use this if you don''t own a TI-Basic Calculator!' description: 'A FREE emulator of a TI-83 Plus, use this if you don''t own a TI-Basic Calculator!' arcade: '0' graphics: '0' platform: '0' puzzle: '0' rpg: '0' strategy: '0' sports: '0' casino: '0' board: '0' utility: '1' misc: '1' compatibility: bb download: 'archivefile:vti83-20171201t150451z-001/VTI83-20171201T150451Z-001.zip' image: null fileSize: '777' fileSizeUnit: '2' dateMade: '' This is a simple program for yahtzee. But this is just the dice really. ClrDraw FnOff AxesOff 0→Xmin 0→Ymin 94→Xmax 62→Ymax For(I,4,76,18 Line(I,21,I,35 Line(I,21,I+14,21 Line(I,35,I+14,35 Line(I+14,21,I+14,35 End randInt(1,6,5→L₁ 0→K While not(K getKey→K End For(I,1,5 18I-7→X If fPart(L₁(I)/2)=.5 Pt-On(X,28,2 If L₁(I)≠1:Then Pt-On(X-4,32,2 Pt-On(X+4,24,2 End If L₁(I)>3:Then Pt-On(X-4,24,2 Pt-On(X+4,32,2 End If L₁(I)=6:Then Pt-On(X-4,28,2 Pt-On(X+4,28,2 End End Pause ClrDraw AxesOn FnOn ZStandard Output(1,1,"  author: LAX18 version: '' summary: '' description: '' arcade: '0' graphics: '0' platform: '0' puzzle: '0' rpg: '0' strategy: '0' sports: '0' casino: '0' board: '0' utility: '0' misc: '0' compatibility: bb download: null image: null fileSize: '1' fileSizeUnit: '3' dateMade: '' This is a program that is like the Pen command. Let's make a program that could define the variable B, as (10^10). Let's start! Count() :Prgm : Local a,b : 10^10→b : For a,1,b : Disp a : EndFor :EndPrgm  Let's break this code down piece by piece starting from the beginning. counting() :Prgm  The first code is the title of the project called "Count()" but you could make it whatever you want. While the second code is ": Prgm", which let's the calculator understand that it is a "program". : Local a,b : 10^10→b : For a,1,b : Disp a  In this code, a "For loop" is established, which will store each successive number from 1 through B (10^10) in variable A.The program then outputs the data currently stored in Variable A, to character space 1,1 in the screen : EndFor :EndPrgm  For this segment, "EndFor" ends the for loop after the code is executed. While "EndPrgm" ends the code. …that you can use a combination of real and imaginary numbers to compress a real list, and use imag( and real( to decompress it? …that you can use plot sprites to make simple, easily movable sprites on the color calculators? author: 'Texas Instruments' version: 2.55MP summary: "The latest TI-84 Plus operating system 2.55 update* features MathPrint™ and is available to download free for TI-84 Plus and TI-84 Plus Silver Edition graphics calculators.\n" description: "The latest TI-84 Plus operating system 2.55 update* features MathPrint™ and is available to download free for TI-84 Plus and TI-84 Plus Silver Edition graphics calculators.\n--\nDownload this simply instead of going through the mess of TI's website!\n--\nUploader: " arcade: '0' graphics: '0' platform: '0' puzzle: '0' rpg: '0' strategy: '0' sports: '0' casino: '0' board: '0' utility: '0' misc: '1' compatibility: dd download: 'archivefile:ti84plus-os255/TI84Plus_OS255.8Xu' image: 'archiveimage:eap-2d-templates-a/EAP_2D-templates_a.jpg' fileSize: '16384' fileSizeUnit: '1' dateMade: '1294297200' If you haven't read Your First Program yet, I recommend you do so first. ## Indentation Whenever you write TI-Basic code, you should make sure it's readable. This will help both yourself and others in the future. One way to make your code more readable is to use indentation. Indentation is important because it allows you to easily see when one block of code ends and the next begins. Squashing all your code together with no indentation can make it hard to read. Indentation is usually done with one space per level. The calculator keeps track of how many spaces begin a line, so they will survive being tokenized. When you begin a block, such as If, or Loop, or While, you add a level of indentation to lines after it, and remove it when you reach an 'End', such as 'EndIf', 'EndLoop', or 'EndWhile'. Here's an example of good indentation: :indtexmp() :Prgm : © Prgm begins a block, so the rest of the code is indented : : Loop © Loop also begins a block, so add an indentation level : If getKey()=13 Then : Exit : EndIf : : Disp "Hello, World!" : EndLoop © EndLoop ends the block, so remove the indentation level :EndPrgm © EndPrgm is not indented at all  Indentation is going to be hard to maintain on a real calculator, or in many TI-Basic editors, since it isn't too common in the TI-Basic community. However, it will be worth it when you're working on a large program. Notice the blank lines before and after blocks like Loop. Like indentation itself, it is entirely optional and it only assists in reading the code. Here's an example of no indentation: :noindent() :Prgm :Loop :If getKey()=13 Then :Exit :EndIf :Disp "Hello, World!" :EndLoop :EndPrgm  This is a simplified example. Imagine an application with 10 or 15 nested If statements, each with their own Else and ElseIf statements. Now imagine needing to put code inside a specific If. You will most likely need indentation to keep track of where to put the code, or you might just sit there for a while trying to make sense of all those nested Ifs! It should be clear that indentation isn't required. Most members of the community don't use it for their programs, maybe because it increases program sizes, or because it's cumbersome to maintain. Maybe it just isn't worth the effort. You should decide whether indentation is for you. You could indent because it makes code more readable, or even just because you're used to indenting code. To indent, or not to indent? That is the question, and the reasoning for your answer is up to you. ## Commenting ## Variable Naming …that 68k calculators can not only program in TI-Basic, but can program in Assembly and C as well? There are no new updates. This is a Celtic 3 program that allows you to do things that a Non-Celtic 3 program would do. Requires Celtic 3 to be installed, and requires at least 3000 bytes of RAM to use (even when you run the program, a little ram [130 bytes] is taken away when a program is ran) File will be posted soon author: _iPhoenix_ version: v1.0 summary: 'A port of the popular game Stick Hero, ported to the CE in pure TI-Basic!' description: 'A port of Stick Hero, for the CE! I took a lot of inspiration from PT_''s CSE port of the game, so check that out, too!' arcade: '1' graphics: '0' platform: '1' puzzle: '0' rpg: '0' strategy: '0' sports: '0' casino: '0' board: '0' utility: '0' misc: '0' compatibility: ff download: 'archivefile:stickheroce/StickHeroCE.zip' image: 'archiveimage:image/Image.gif' fileSize: '1303' fileSizeUnit: '1' dateMade: '' author: Bio_Hazard1282 version: 1.0.7 summary: 'http://thevideogamingsite.wikidot.com/program-manager' description: "This is a program that is related to Oasis (A shell programmed in pure TI-Basic), and is programmed in pure TI-Basic.\nIt allows you to:\n• Archive and Un-Archive programs\n• Hide/Show programs\n• Lock/Unlock programs\n• Garbage Collect\n• View Data about programs (Shows how many lines of code is in the program, tells if it is archived, hidden, locked, converts name to hexadecimal string, and shows how big that program is.)\n• Delete/Create Programs\n\n++++++ New Updates\n• Run programs\n• Download program codes and store them into a string, then recall the string\n• Sort for MirageOS, BASIC, Assembly programs\n• The program source code\n• Important updates\n• More det( and real functions\n• The program will become an app\n--\n++++ I am thinking…\n++++++ This could become an OS, I am thinking if calling it ManagerOS…" arcade: '0' graphics: '0' platform: '0' puzzle: '0' rpg: '0' strategy: '0' sports: '0' casino: '0' board: '0' utility: '1' misc: '1' compatibility: bb download: 'archivefile:program-manager/Program-Manager.docx' image: null fileSize: '1783' fileSizeUnit: '1' dateMade: '1508306400' Command Summary Returns the numerator of a fraction or given expression Command Syntax getNum(expression1) Menu Location [MATH][9][B][1] This command works on all calculators. X byte(s) The getNum() command return the value of a given expression (an expression being a number or an algebraic expression). getNum(3/5) 3 getNum((x+1)/(x-1)) x+1  # Related Commands author: wifijoe version: v1.0 summary: 'Play the famous game Minesweeper on your calculator! ' description: "controls are:\narrow keys: movement\n2nd button: reveal square\nALPHA button: mark/un-mark mine\n\nto win: clear the board of all of the squares. Empty spots will not clear themselves.\n\nside note: while this can run on a ti-83+, it is not recommended.\n\njust ask me if you want it to be open source!" arcade: '0' graphics: '0' platform: '0' puzzle: '1' rpg: '0' strategy: '0' sports: '0' casino: '0' board: '0' utility: '0' misc: '0' compatibility: cc download: 'archivefile:mine/MINE.8xp' image: 'archiveimage:capture/Capture.png' fileSize: '1183' fileSizeUnit: '1' dateMade: '1508299200' This page consists of various techniques that can be used while programming in 68k Basic. ### _default + list pages ### 68k + list pages ### 84ce + list pages ### 84cs + list pages ### 84cse + list pages ### admin + list pages ### admin-forum + list pages ### admin-nav + list pages ### admin-section + list pages ### admin-thread + list pages ### archive + list pages ### archive-categories + list pages ### archivefile + list pages ### archiveimage + list pages ### archives + list pages ### asm + list pages ### badge + list pages ### basicbuilder + list pages ### board + list pages ### challenges + list pages ### chat + list pages ### css + list pages ### del + list pages ### deleted + list pages ### dyk + list pages ### empty-page + list pages ### excerpt + list pages ### featured-program + list pages ### featured-project + list pages ### file + list pages ### forum + list pages ### home + list pages ### how-to + list pages ### inc + list pages ### member + list pages ### nav + list pages ### navi + list pages ### news + list pages ### nspire + list pages ### pages + list pages ### portable + list pages ### portal + list pages ### post + list pages ### projects + list pages ### projectupdates + list pages ### project-updates + list pages ### reports + list pages ### resources + list pages ### sandbox + list pages ### screenshot + list pages ### search + list pages ### showcases + list pages ### sk + list pages ### system + list pages ### template + list pages ### test + list pages ### ti + list pages ### wishlist + list pages ### xlib + list pages ### z80 + list pages Text displayed when hoveredText to hover TI Basic is great!  Revision types: ALL new pages source changes title changes page name changes tags changes metadata changes files changes From categories: Whole site _default 68k 68k-command 84ce 84cs 84cse admin admin-forum admin-nav admin-section admin-thread archive archive-categories archivefile archiveimage archives asm badge basicbuilder board challenges chat css del deleted dyk empty-page excerpt featured-program featured-project file forum home how-to inc member nav navi news nspire pages portable portal post projects projectupdates project-updates reports resources sandbox screenshot search showcases sk system template test ti wishlist xlib z80 Revisions per page: 10 20 50 100 200 page 1123...next »  deleted: Alipor-.txt OODITOR R 18 Jul 2018 18:52 (rev. 6) jonbush You successfully renamed the page: "archive:alipor-txt-ooditor" to "deleted:archive:alipor-txt-ooditor".  deleted: Alipor-.txt OODITOR S 18 Jul 2018 18:52 (rev. 5) jonbush  deleted: Alipor-.txt OODITOR S 17 Jul 2018 06:31 (rev. 4) Alistairy  deleted: Alipor-.txt OODITOR S 17 Jul 2018 06:29 (rev. 3) Alistairy  deleted: Alipor-.txt OODITOR S 16 Jul 2018 07:07 (rev. 2) Alistairy  deleted: Alipor-.txt OODITOR S 16 Jul 2018 07:02 (rev. 1) Alistairy  deleted: Alipor-.txt OODITOR N 16 Jul 2018 06:53 (new) Alistairy  archivefile:form1 N F 16 Jul 2018 06:51 (new) Alistairy  List & Matrix One Liners S 15 Jul 2018 21:15 (rev. 18) Timothy Foster  Routines S 15 Jul 2018 18:14 (rev. 112) Trenly Removed partial probability as it was moved to List one liners  List & Matrix One Liners S 15 Jul 2018 18:12 (rev. 17) Trenly Added the partial probability routine  archivefile: Stringchecker F 10 Jul 2018 01:45 (rev. 1) Trenly Uploaded file "TEST.8xp".  archivefile: Stringchecker N 10 Jul 2018 01:44 (new) Trenly  The geometpdf( Command S 05 Jul 2018 18:45 (rev. 10) kg583 Monospaced commands  The geometcdf( Command S 05 Jul 2018 18:44 (rev. 12) kg583 Monospaced commands + spelling fixes  The gcd( Command S 03 Jul 2018 22:46 (rev. 8) kg583 Monospaced commands + added links  The GarbageCollect Command S 03 Jul 2018 22:42 (rev. 8) kg583 Monospaced commands  The nDeriv( Command S 03 Jul 2018 22:32 (rev. 10) kg583  The nDeriv( Command S 03 Jul 2018 22:30 (rev. 9) kg583 Monospaced + tweaked Deoxal's explanation  The nDeriv( Command S 03 Jul 2018 21:41 (rev. 8) Deoxal page 1123...next » author: 'Ti Programs Online' version: '1.0' summary: 'Helps calculate taxes for 2017 fiscal year.' description: 'Helps calculate taxes for 2017 fiscal year.' arcade: '0' graphics: '0' platform: '0' puzzle: '0' rpg: '0' strategy: '0' sports: '0' casino: '0' board: '0' utility: '1' misc: '1' compatibility: bb download: 'archivefile:taxfnd17/TAXFND17.zip' image: null fileSize: '487' fileSizeUnit: '1' dateMade: '1507438800' Command Summary Pastes the content of a variable Command Syntax Rcl variable Menu Location [2ND][STO>] TI-83+/84+/C/SE N/A Rcl is a functionality of the calculator which allows the user to paste the value of a variable into a text entry field. The Rcl function can be used anywhere where text entry is required, but may not be used as a command within a program. When the user presses [2ND][STO>], the Rcl prompt will appear. Enter the name of the variable that you wish to recall here, and press [ENTER]. For example, you could use Rcl to paste the contents of a string variable into an Input prompt in a running program. Rcl Str1  # Advanced Uses Rcl can be used to paste one program into another program, allowing for duplicating programs on the calculator. This is particularly useful when modifying a working program. If you decide that your changes should be reverted, you will have a backup copy of the original program # Related Commands This code finds the angle of intersection of two lines. Routine Summary Finds the angle of intersection for any two lines. Inputs Str1 and Str2 Outputs Ans Variables Used Y1, Y2, I, Ans, X Calculator Compatibility TI-83/84/+/SE/CSE/CE Authors :Degree :Str1→Y1 :Str2→Y2 \\If your equations are already stored in Y1 and Y2, these two lines are unneccessary :E‾9→I \\This threshold can be changed to adjust the output accuracy :angle(I+i(Y2(X+I)-Y2(X :Ans-angle(I+i(Y1(X+I)-Y1(X :Disp "ANGLE OF INTERSECTION IS",Ans  The routine works by assuming the graphs are almost straight lines at a very small scale around the point of intersection given by X. The two graphs are approximated by complex numbers made by combining the x and y coordinates. The angle( command finds the angle for each complex number, then they are subtracted. This command is useful as it avoids domain errors caused by using tanֿ¹(. If you do not already know the x-coordinate of the intersection of the two graphs, you can add this line at the beginning to find it: :solve(Y2(X)-Y1(X)=0,X,0→X  Command Summary Graphs up to 5 piecewise expressions. Command Syntax (expression, condition [,expression, condition]) Up to 5 (expression,condition) pieces are allowed. Menu Location 1: While editing a program, press [math] 2: Then press [alpha] [apps] (B) or scroll down. TI-84+CE OS 5.3 2 bytes The piecewise( command is a new addition in the release of OS 5.3 for the TI-84 Plus CE. As implied, it allows for the graphing of piecewise functions in the Y= editor. The example code demonstrates how this works from within a program. :ClrDraw :Input "Y1=",Str1 :Input "Y2=",Str2 :Str1→Y1 :Str2→Y2 :FnOff :"piecewise(Y1,X≥0,Y2,X<0→Y3 :DispGraph  # Advanced Uses One use of the piecewise( function is to evaluate an expression for a given value of X. For example: :piecewise(X²+2,X≥0  This code will return the value of the expression if X≥0. So if X=0, then the program will return a value of 2. If X=3, it will return a value of 11. If X=-5, it will return an error. # Optimization This command can simplify and compact the usage of piecewise expressions in programs. If you have less than 6 conditions that will never overlap, and they all affect a single variable, you can use the piecewise( command to make your code smaller, as shown below. Beware of comparability, though. :If X<2 :Then :4.5X→N :Else :8X+3→N :End can be :piecewise(4.5X,X<2,8X+3,X≥2→N  # Error Conditions • ERR:INVALID is thrown if expressions are not defined. • ERR:DATA TYPE is thrown if a quotation mark is not placed before a piecewise command that is to be stored to an equation variable. # Related Commands • Command 1 • Command 2 • Command 3 # See Also The ListPages module does not work recursively. author: eeffeemorgan version: '1.1.2-Base Codes' summary: '2D Minecraft' description: "83-Craft is a Minecraft like game in which you can place/destroy blocks and move around. \nAlso, giving credit where it is due, this was not entirely mine it is my take on Ti-Craft by 12Me21. Go check it out here:\nhttp://tibasicdev.wikidot.com/archive:ticraft\nAlso, I will be updating this almost constantly because I never have anything to do in my classes at school.\n\n\nBiomes:\n0:Default\n1:Forest\n2:Flat lands\n3:Barren\n4:Underground\n5:Plains\n6:Barren Plains\n7:Skylands?\n\nControls:\nPress the arrow keys to move.\nPress Y= to set the block to air\nPress window to set the block to dirt\nPress zoom to set the block to stone\nPress trace to set the block to leaves\nPress graph to set the block to Wood\nMode = glass\nDEL = Brick\nX,T,θ,n = Mushroom\nTo place blocks around the player use keys:12346789 (Ex:to place a block above the player press 8 to place one below press 2)\nPress STO to reach save menu\n\nOld:\nTrees! Mushrooms! Biomes!\nWood, Leaves, Dirt, Stone\n\nNew!:\nGlass, Brick, Mushroom(Place-able),\nSkylands, \nOre generation!\n\nUp coming:\nBaddies\nClimbing\n4 more blocks" arcade: '0' graphics: '0' platform: '1' puzzle: '0' rpg: '0' strategy: '0' sports: '0' casino: '0' board: '0' utility: '0' misc: '0' compatibility: bb download: 'archivefile:83-craft/83-Craft.8xp' image: 'archiveimage:83-craft-2/83_Craft_2.gif' fileSize: '2804' fileSizeUnit: '1' dateMade: '1505541600' reason: 'This is Thel Vadamee/Ti-Basic Dude' proof: 'His username leaves little doubt of his identity. This is an alternate account of Thel Vadamee/TI-Basic Dude, which is a violation of the rules to avoid a ban by having an alternate account. ' That forum structure is really nice! I am also in approval of this layout.  Sep 13 — TI-BD Contributor Battlesquid has been promoted to Moderator. reason: 'Alternate account of a banned account' proof: 'The "2" in his username, for one. Also, his most recent post. For further reasons, see my original report.' reason: '' proof: '' reason: 'testing autonumbering 2' proof: 'again, none' reason: 'testing for autonumbering' proof: None This is where you can report members you who have broken the rules, or who you suspect to be alternate accounts. By reporting members here, it sends the report to all admins so the members can be dealt with in a fast and efficient manner. Simply enter their username into the box below and click the button to start a new report. # Pending The ListPages module does not work recursively. # All The ListPages module does not work recursively. ## A The ListPages module does not work recursively. ## B The ListPages module does not work recursively. I started an admin only chatbox, since I think we can all be trusted not to impersonate or spam or anything. Preparation Main Content References • CHAR • → ⸤ ⁻ • × ÷ ± • √ Σ ≠ • ≥ ≤ π • Δ χ ▶ • ֿ¹ ² ³ • L₁ L₂ L₃ • L₄ L₅ L₆ • ≅ ℕ º • θ ∠ ∞ • ♦ ⇧ ∫ • ∏ © this seems to look nice It might be possible to retrofit this thing I made a long time ago as an admin forum rather than a general forum. It isn't exactly the same as the regular forums, though, because to be frank, emulating them exactly isn't really feasible. I will try to do that. This current setup is rather strange, and doesn't seem to work very well. The ListPages module does not work recursively. The ListPages module does not work recursively. can we make this look and function like the main TI|BD forums? I like the look, feel, and usability of them Just testing. Thanks jonbush :) Recent Posts In fact, this can be improved to account for non-integers as well. As a bonus, it's also... (by Timothy Foster 15 Jul 2018 21:13, posts: 5) I think I see why it works now: For some L₁, say L₁={4,5,7,0,3} , cumSum(L₁)={4,9,16,16,19} where... (by kg583 15 Jul 2018 17:30, posts: 5) Yeah. I'm just not good enough with algorithms to see how that code works, but It does (by Trenly 15 Jul 2018 17:22, posts: 5) Just ran some tests and it looks like it does indeed do the same partial probability... (by kg583 15 Jul 2018 16:26, posts: 5) Does this do the same thing? 1+sum(cumSum(Ans)<randInt(1,sum(Ans Ans is the list. (by Timothy Foster 15 Jul 2018 12:48, posts: 5) Oh, I forgot about that. The original version I had was this: :not(min(A-B,0 which would... (by kg583 13 Jul 2018 21:44, posts: 7) Recent Threads (Started 16 Jul 2018 06:53, Posts: 0) (Started 15 Jul 2018 12:32, Posts: 5) (Started 13 Jul 2018 04:37, Posts: 7) (Started 12 Jul 2018 13:51, Posts: 5) (Started 09 Jul 2018 20:46, Posts: 6) (Started 08 Jul 2018 23:12, Posts: 3) (Started 08 Jul 2018 22:59, Posts: 3) (Started 08 Jul 2018 21:21, Posts: 3) (Started 07 Jul 2018 23:32, Posts: 2) (Started 07 Jul 2018 17:57, Posts: 2) (Started 07 Jul 2018 16:10, Posts: 2) (Started 06 Jul 2018 07:46, Posts: 5) • CHAR • → ⸤ ⁻ • × ÷ ± • √ Σ ≠ • ≥ ≤ π • Δ χ ▶ • ֿ¹ ² ³ • L₁ L₂ L₃ • L₄ L₅ L₆ • ≅ ℕ º • θ ∠ ∞ • ♦ ⇧ ∫ • ∏ © This is the place to discuss admin questions for the setup of the wiki -design, layout, structure, permissions. And to store the decisions. This is a SubThread ( nested by Parenting! ) to Thread:1 Please feel free to ask here in the general test section what ever you want. The admins and all "watchers" will be informed by email… This is an open Task! (tagged with "_task") You will see this in the side nav menu and in the list "OPen Task" if the task is done, close it with "_closed" This is a sticky thread!( tagged with "_sticky") Please - this is the 1. Thread on this admin-forum example - onlöy to demonstrate the possibilities Feel free to start "sub-threads" if you want to test it out.  {$label} [[include admin-section:{name}]] The ListPages module does not work recursively.The ListPages module does not work recursively. The ListPages module does not work recursively. The ListPages module does not work recursively. The ListPages module does not work recursively. To add a section, you need to: 1. Enter the name of the section in the input box below and click Ok. 2. Edit the main list of sections to add your new section.  Forum management: - Forum guide - Important pages - Open Tasks Thread management: - To make a thread sticky, tag it '_sticky'. - To close a thread, tag it '_closed'. - To create a task, tag it '_task'. Open tasks: (More...)  Create a new forum section  Section Last edit open / closed  Design This is the place to discuss admin questions for the setup of the wiki -design, layout, structure, permissions. And to store the decisions. The ListPages module does not work recursively.The ListPages module does not work recursively. The ListPages module does not work recursively. The ListPages module does not work recursively. The ListPages module does not work recursively. To create a task tag any thread with _task. to close a task tag any thread with _closed. The ListPages module does not work recursively. This forum implements the TopicTree pattern for forum discussion. It uses a number of key Wikidot features: • Per-page comments, via the Comments module - forbidden for "admin-forum:" here! - comments are stored in the standard public forum and therefore readable…! • Live-templating, to format section and thread pages • Cross-site includes, to pull in packages like the scrollbar • Customizable themes • Page parenting and breadcrumbs Roughly, the forum consists of a set of 'sections' ("admin-section:) , each with a number of autonumbered 'threads', ("admin-thread:") and each thread can contain sub-threads, to any level of nesting. Each section, and thread or sub-thread is a page, not a post". You can add special tags to thread pages to make them behave in certain ways: • _sticky creates a sticky thread, which always shows first in lists of threads • _closed pushes the thread to the end of the list and marks it "(Closed)" • _task shows the thread on the list of open tasks in the side bar menu • _nocomment disables per-page comments and asks the user to use sub-threads to discuss (not enabled for thsi admikn-forum! ) Click any page to edit it: This is the admin forum. Here you can search for existing threads, start a new thread, and take part in active threads. You can bookmark this site and visit for updates, or you can watch the site, sections, or threads via email notifications. The description of this admin-forum setup is stored on admin-forum To make a forum just like this, please use the forum template.  Forum management: Thread management: - To make a thread sticky, tag it '_sticky'. - To close a thread, tag it '_closed'. - To create a task, tag it '_task'. Open tasks: (More...)  Section Last edit open / closed  Design This is the place to discuss admin questions for the setup of the wiki -design, layout, structure, permissions. And to store the decisions. The ListPages module does not work recursively.The ListPages module does not work recursively. The ListPages module does not work recursively. The ListPages module does not work recursively. The ListPages module does not work recursively. …that there are also models aimed for the Chinese market, such as the TI-Nspire CM-C? @import url(http://static.wikidot.com/common--theme/co/css/style.css?0); #header { background: #171412; height: 86px; } #header h1 { padding: 0; margin: 0; width: 800px; height: 69px; background: #171412 url('/local--files/nspire:home/Logo10C.png') no-repeat; } #header h1 a { padding: 0; margin: 0 320px 0 8px; width: 472px; height: 69px; display: block; } #header h1 span { display: none; } #header h2 { display: none; } #top-bar { top: 69px; height: 21px; min-width: 976px; padding: 0; background-color: #564a43; border-bottom: 2px solid #564a43; } #top-bar ul{ padding: 2px 100px 2px 30%; } #top-bar a, #top-bar li ul li a { background-color: #564a43; } #top-bar a:hover, #top-bar li ul li a:hover { background-color: #564a43; } #side-bar { width: 20%; min-width: 185px; float: left; background-color: #C7C9B8; border-right: 1px solid #BBBEAB; border-bottom: 1px solid #BBBEAB; color: #4E4F43; padding-top: 3px; margin:0; } .special-collapsible .collapsible-block-unfolded .collapsible-block-link { font-weight: bold; padding-left: 0em; } .special-collapsible a { margin: 0; padding-top: 2px; padding-bottom: 2px; display: block; padding-left: 1em; border-bottom: 1px solid #BBBEAB; border-top: 1px solid #D2D3C6; color: #1E2B31; text-decoration: none; } /* The links on the left side */ #side-bar ul{ display: block; padding: 0; list-style: none; } #side-bar ul li{ margin: 0; display:block; } #side-bar li a { margin: 0; padding-top: 2px; padding-bottom: 2px; display: block; padding-left: 1em; border-bottom: 1px solid #BBBEAB; border-top: 1px solid #D2D3C6; color: #1E2B31; background-color: default; text-decoration: none; } #side-bar li a:hover { background-color: #D1D3C3; } /* The headings on the left */ #side-bar h1 { font-size: 140%; margin: 0px; padding-left: 0.5em; margin-top: 3px; margin-bottom: 0px; } /* Left paragraph text */ #side-bar p { padding: 5px; margin: 0px; margin-bottom: 3px; margin: 0px; } .infobox { color: #FFFFFF; } .infobox a { color: #FFFFFF; } #footer { background: #564A43; border-color: #171412; }  author: Myles_Zadok version: '2.0' summary: 'Pong for CE calculators, with two game modes!' description: 'Pong for CE calculators. Includes a Versus CPU game mode AND a high score mode. (High scores are not recorded) Use the arrow keys to move the paddle, 2nd to pause the game, and enter to resume the game. Version 2.0 includes an option for the user to choose the color of the paddle, as well as overall improvements to the game.' arcade: '1' graphics: '1' platform: '0' puzzle: '0' rpg: '0' strategy: '0' sports: '1' casino: '0' board: '0' utility: '0' misc: '1' compatibility: ff download: 'archivefile:pongce/PONGCE.8xp' image: 'archiveimage:pongce2-image/PongCE2-image.png' fileSize: '3556' fileSizeUnit: '1' dateMade: '1502859600' Routine Summary Reverses the order of elements in a list. Inputs L₁ Outputs L₁ Variables Used M,X Calculator Compatibility TI-83/84/+/SE/CSE/CE Author kg583 :dim(L₁→M :For(L,1,int(M/2 :L₁(L→Z :L₁(M-L+1→L₁(L :Z→L₁(M-L+1 :End  This routine will quickly reverse L₁. It works by swapping pairs of elements that are equidistant from the center of the list, and uses no other lists as dummy variables. Routine Summary Calculates the mode(s) of a list of numbers. Inputs A,B - Whole numbers Outputs L₁(I) - Greatest common divisor (gcd) of A and B L₂(I), L₃(I) - Bézout coefficients such that AL₂(I)+BL₃(I) = L₁(I) Variables Used I, Q Calculator Compatibility TI-83/84/+/SE/CSE/CE Author kg583 :{A,B→L₁ :{1,0→L₂ :{0,1→L₃ :1→I :While L₁(dim(L₁ :I+1→I :int(L₁(I-1)/L₁(I→Q :L₁(I-1)-AnsL₁(I→L₁(I+1 :L₂(I-1)-QL₂(I→L₂(I+1 :L₃(I-1)-QL₃(I→L₃(I+1 :End  The Extended Euclidean Algorithm is a highly efficient algorithm for calculating the greatest common divisor (GCD) of two numbers. The algorithm, in the process of finding the GCD, also finds the Bézout coefficients x and y. These are whole numbers such that (1) \begin{align} ax+by=\gcd(a,b) \end{align} author: 'Myles_Zadok; adapted the very addicting program made by Michael2_3B for color calculators' version: '1.0' summary: 'An avalanche spin-off for color calculators.' description: "From Basic Avalanche Plus: \"This is one of my most basic games, however it is still kind of addicting :P You must collect the falling \"+\" signs and avoid the falling \"-\" signs. Failure to do so will result in Game Over. High score included.\n\nCONTROLS: Left and Right Arrow keys to move, CLEAR to quit at any time.\"" arcade: '1' graphics: '0' platform: '0' puzzle: '0' rpg: '0' strategy: '0' sports: '0' casino: '0' board: '0' utility: '0' misc: '0' compatibility: ff download: 'archivefile:baplusc/BAPLUSC.zip' image: null fileSize: '458' fileSizeUnit: '1' dateMade: '1501995600' ## Members  since 05 Sep 2006 03:12 since 08 Sep 2006 00:46 since 08 Sep 2006 00:46 since 11 Sep 2006 23:23 since 24 Sep 2006 21:28 since 25 Sep 2006 05:29 since 25 Sep 2006 22:37 since 02 Oct 2006 06:43 since 22 Oct 2006 12:12 since 24 Oct 2006 18:33 since 24 Oct 2006 18:34 since 24 Oct 2006 18:34 since 03 Nov 2006 19:43 since 05 Nov 2006 22:38 since 08 Dec 2006 06:37 since 17 Jan 2007 12:29 since 17 Jan 2007 13:58 since 10 Feb 2007 18:42 since 21 Mar 2007 05:13 since 31 Mar 2007 01:59 since 12 Apr 2007 02:15 since 14 Apr 2007 01:45 since 15 Apr 2007 17:16 since 16 Apr 2007 05:50 since 15 May 2007 05:46 since 11 Jun 2007 04:39 since 20 Aug 2007 09:09 since 04 Sep 2007 05:36 since 04 Sep 2007 05:36 since 04 Oct 2007 02:00 since 04 Nov 2007 04:11 since 15 Nov 2007 00:32 since 12 Dec 2007 05:17 since 18 Dec 2007 06:52 since 23 Dec 2007 20:08 since 16 Jan 2008 07:27 since 21 Jan 2008 03:01 since 25 Jan 2008 22:07 since 27 Jan 2008 03:16 since 02 Feb 2008 21:49 since 07 Feb 2008 03:58 since 09 Feb 2008 16:17 since 12 Feb 2008 12:29 since 23 Feb 2008 02:56 since 28 Feb 2008 08:15 since 20 Mar 2008 12:33 since 24 Mar 2008 18:38 since 25 Mar 2008 01:48 since 28 Mar 2008 00:37 since 10 Apr 2008 03:15 since 27 Apr 2008 14:51 since 03 May 2008 22:45 since 04 May 2008 12:12 since 06 May 2008 23:41 since 10 May 2008 09:14 since 25 May 2008 22:40 since 31 May 2008 04:18 since 06 Jun 2008 12:16 since 09 Jun 2008 17:46 since 09 Jun 2008 22:40 since 10 Jun 2008 13:01 since 10 Jun 2008 13:01 since 10 Jun 2008 18:28 since 10 Jun 2008 22:13 since 11 Jun 2008 01:04 since 11 Jun 2008 15:05 since 12 Jun 2008 03:55 since 12 Jun 2008 05:02 since 12 Jun 2008 12:55 since 12 Jun 2008 17:27 since 13 Jun 2008 13:48 since 13 Jun 2008 14:24 since 16 Jun 2008 08:47 since 18 Jun 2008 11:29 since 19 Jun 2008 05:44 since 21 Jun 2008 10:48 since 21 Jun 2008 18:55 since 24 Jun 2008 21:55 since 25 Jun 2008 16:36 since 27 Jun 2008 14:22 since 30 Jun 2008 20:00 since 01 Jul 2008 18:50 since 12 Jul 2008 12:07 since 18 Jul 2008 01:45 since 16 Aug 2008 02:35 since 16 Aug 2008 06:07 since 20 Aug 2008 14:53 since 23 Aug 2008 14:31 since 28 Aug 2008 01:25 since 09 Sep 2008 02:43 since 17 Sep 2008 00:40 since 17 Sep 2008 02:25 since 23 Sep 2008 01:19 since 23 Sep 2008 15:40 since 01 Oct 2008 17:12 since 03 Oct 2008 06:37 since 03 Oct 2008 16:14 since 06 Oct 2008 17:32 since 25 Oct 2008 23:08 since 26 Oct 2008 15:42 page 1 of 13123...1213next » ## Moderators ## Admins  Master Administrator author: a_bretherino version: 1.0.2 summary: 'Wheel of fortune, the GAME for 2-3 players with puzzle adder!' description: "Completely TI BASIC Wheel of Fortune game show for 2-3 people with expansion pack and puzzle adder program! Independent game: no other software required!\n\nRequires TI-84+CE for 26x10 home screen display and RAM space." arcade: '1' graphics: '0' platform: '0' puzzle: '1' rpg: '0' strategy: '1' sports: '0' casino: '1' board: '0' utility: '0' misc: '0' compatibility: ff download: 'archivefile:wheel-1-0-2/WHEEL-1-0-2.zip' image: null fileSize: '26639' fileSizeUnit: '1' dateMade: '1501477200' ## Program Editor: Before you start by making your first code, you must learn how to create a program(Make sure you are in the Calculator application). Press Menu and go to 8. Then, press 1 and 1 again. A window will pop up prompting the name of the program. Put in the name, then select the type (program or function) and press OK. Now, you are in the program editor, you can now move to the tutorials underneath. ## Introduction: Well hello and welcome to your first tutorial! Let's start with the title "How to print text on a TI-Nspire", Well to simply answer your question it's Disp or text. Let's look at the two examples underneath. Text "HELLO, WORLD!" If you want to include more functionality to displaying text, you can use Disp which will display your text as well. Disp "HELLO, WORLD!" author: 'TI-Basic Dude' version: 1.3.1dots summary: 'Look at description.' description: "How to play:\nYou need to find all the hidden dots within the time limit. \nComes with FREE of the ASCII chars:\n↑↓#%&@\\_|₀₁₂₃₄₅₆₇₈₉…Ŝ\n\n(Oops, did not turn out correctly… Oh well.)\n\nThis was just typed in on August 10th, 8:30 AM.\nAnd, this game allows you to pause the game. Just in case you need to use the restroom or make lunch or something. \n\nAllows you to stop the game in case you need to quit. Pretty fun if I do say so myself.\n\nAnd I may go to Europe this year or next year for my moms job.\nNot sure if there is internet or not in Europe. Well, see ya around!"
graphics: '0'
platform: '0'
puzzle: '1'
rpg: '1'
strategy: '1'
sports: '0'
casino: '0'
board: '0'
utility: '0'
misc: '1'
compatibility: bb
image: 'archiveimage:screen01-3/SCREEN01.JPG'
fileSize: '2470'
fileSizeUnit: '1'

author: 'Michael K. Pellegrino'
version: '1.0'
summary: 'This version of the classic game was written in pure z80 Assembler. To run it use the Asm command. It was written for the TI83/84+ calculators.'
description: 'Classic game of 21 - Text Based - Saves your bank upon exit. If you run out of funds - you can register the game for \$2.00 and you will perpetually have a bank roll.'
graphics: '0'
platform: '0'
puzzle: '0'
rpg: '0'
strategy: '1'
sports: '0'
casino: '1'
board: '0'
utility: '0'
misc: '0'
compatibility: bb
image: null
fileSize: '3256'
fileSizeUnit: '1'

Routine Summary

Calculates the mode(s) of a list of numbers.

Inputs

L₁ - To store the user-inputted list of numbers

Outputs

L₃ - The mode(s) of the original list of numbers
Ans - The mode(s) of the original list of numbers (alternates)

Variables Used

L₂ - Intermediate calculation storage
X - Weregoose's version only

Calculator Compatibility

TI-83/84/+/SE/CSE/CE

Authors

:ClrList L₂,L₃
:iL₁(1)+sum(L₁=L₁(1→L₂(1
:For(L,2,dim(L₁
:If not(max(L₁(L)=imag(L₂
:iL₁(L)+sum(L₁=L₁(L→L₂(1+dim(L₂
:End
:For(L,1,dim(L₂
:If real(L₂(L))=max(real(L₂
:imag(L₂(L→L₃(1+dim(L₃
:End


The mode of a list is the value that occurs most often within the list. This routine will find the mode and, if there are any ties, will display all modes. Examples:

:{1,2,3,3,4
Mode = {3}
:{5,5,6,6,7
Mode = {5,6}


# Alternate Routines

:SortA(L₁
:Repeat min(0≠ΔList(L₂
:{0→L₂
:ΔList(L₁→L₃
:For(θ,1,dim(L₃
:If not(L₃(θ
:L₁(θ→L₂(1+dim(L₂
:End
:L₂→L₁
:End
:ΔList(cumSum(L₂


This version coded by Trenly is slightly shorter than the above routine by kg583 and produces the same output, which is saved in Ans rather than L₃. However, the original list in L₁ is modified in the process, so make sure to backup that list somewhere else if you need it later.

:1+max(abs(L₁→X
:L₁+Ans
:While max(Ans
:Ans→L₁
:SortD(L₁
:L₁augment({0},not(ΔList(L₁
:End
:sum(L₁ xor 0→dim(L₁
:L₁-X


This version written by Weregoose is very similar to Trenly's in form and function. The output is, again, in Ans and lists all modes, but does also modify L₁ in the process. Note the advanced use of the xor function.

# Introduction

The 68k series can easily make an accurate distinction between programs and/or functions. Functions are just like programs except that they do not allow statements with side effects (such as Input or "Disp," or allow editing of non-local variables), and they return a single value, which in the absence of an explicit Return statement is the last expression evaluated in the system.

Moreover, the 68k version of TI-BASIC allows creating user-defined functions. Functions have the same syntax as programs except that they use the "Func…EndFunc" keywords instead of "Prgm…EndPrgm," and that they are not allowed to use instructions that perform I/O, modify non-local variables, nor call programs. However, functions can still be non-pure because they can call built-in functions such as "getTime(), getKey(), or rand()."

Lastly, all functions have a return value, which in the absence of an explicit Return statement is the last expression evaluated.

# Functions Program Example

fact(x)
:Func
:If x=0
:Return 1
:If x<0
:Return undef
:x*fact(x-1)
:EndFunc

Bibliography

#### Creating a program in the Program Editor

Time to make your first program in 68k Basic! In the APPS menu select #7, go to the "Program Editor", and then press "New". Enter a name for your program in the variable field, let's call it "hellowld". Press enter, and here we go!

#### Creating the Program

The following program, when executed, will display the phrase "Hello World!"

hellowld()
:Prgm
:ClrIO
:
:Disp "Hello World!"
:
:Pause
:ClrIO
:DispHome
:EndPrgm


Let's go through a line-by-line analysis of this code.

hellowld()
:Prgm


This is where the program starts. Every program you make will start with the name of the program, followed by parenthesis. The nest line contains an opening Prgm tag, which indicates the beginning of the program. Everything after it will contain the actual code that you write.

:ClrIO
:
:Disp "Hello World!"


The next command is ClrIO, which will clear the Input/Output buffer. For those who don't know what this is, it's basically a different section of the calculator where output is displayed (so output is not displayed on the Home screen, it is displayed here). After that, we have a new command Disp, which displays a string to the IO buffer.

:Pause
:ClrIO
:DispHome
:EndPrgm


We then pause the program, which will halt program execution until the ENTER key is pressed. More information on why we do this up ahead. After pressing the enter key, the program clears the IO buffer (which erases the "Hello World!" message from it) and goes back to the home screen using the DispHome command. This is the end of our program, which means that we can add the EndPrgm tag, which closes the program.

You may look back and ask, why did we include the pause command? This is because shortly after, we display the home screen using DispHome. This means that the "Hello World!" message will be printed the IO buffer, but it will display the home screen quickly before you can even try to read the message. We add the pause in there to allow the user to read the message before executing the rest of the code. This roadblock can be crossed by removing the DispHome command, but for ease of use, we keep the DispHome and make sure to throw in the pause command after we display the text.

author: 'TI-Basic Dude'
version: 5.0S.0C
summary: 'This is My first upload to this website!!!!! Yay!!!'
description: "This Program Includes a Onblock assembly program and the security program. Please post to tell me if you want to change it in any way/ or optimize it.\n\nThis Program Includes:\n\n~ Security Program (I highly recommend you get TI's Start-Up Customization App)\n~ On block (To prevent people from using the [ON] key to exit.)\n\nYou may choose your own PIN instead of \"9257\".\n\nOther Information:\n\n79 bytes for the prgmONBLOCK\n434 bytes for the prgmθSECURTY\nThis program is edit locked. To unlock it, use the TI-BD's assembly program for the Lock status for a program.\n\nⒸ 2017 TI-Basic Dude\n"
graphics: '0'
platform: '0'
puzzle: '0'
rpg: '0'
strategy: '0'
sports: '0'
casino: '0'
board: '0'
utility: '1'
misc: '0'
compatibility: bb
image: null
fileSize: '513'
fileSizeUnit: '1'

…that you can change the color of the input or output of a math box?

…that you can compare multiple data sets in the same graphing window?

…that many of the Windows shortcut key commands work on the Nspire?

Ops | A | B | C | D | E | F | G | I | L | M | N | O | P | Q | R | S | T | U | V | W | X | Z

xor

# Z

The ListPages module does not work recursively.

…that the Nspire can program in TI BASIC, C, Assembly, and Lua?

Did you know…

The ListPages module does not work recursively.

Did you know…

The ListPages module does not work recursively.

Did you know…

The ListPages module does not work recursively.
 May 11 — The nspire section was added to the news category

## Program Editor

Before you start by making your first code, you must learn how to create a program(Make sure you are in the Calculator application). Press Menu and go to 8. Then, press 1 and 1 again. A window will pop up prompting the name of the program. Put in the name, then select the type (program or function) and press OK. Now, you are in the program editor, you can now move to the tutorials underneath.

## Hello World!

The following program, when executed, will display the phrase "HELLO, WORLD!"

Text "HELLO, WORLD!"

Other Methods:

If you want to include more functionality to displaying text, you can use Disp.

Text "HELLO, WORLD!"

Is the same as:

Disp "HELLO, WORLD!"

author: 'Trent Knight'
version: '1.0'
summary: 'GeometryCE is a program that automatically calculates many different geometry formulas for you.'
description: 'GeometryCE stores many common formulas for you to use, and solves the formulas for you. All answers are given in exact form. I am planning on updating it with approximate answers and more formulas.'
graphics: '0'
platform: '0'
puzzle: '0'
rpg: '0'
strategy: '0'
sports: '0'
casino: '0'
board: '0'
utility: '1'
misc: '0'
compatibility: ff
image: null
fileSize: '6'
fileSizeUnit: '2'

Preparation

References

• CHAR
• → ⸤ ⁻
• × ÷ ±
• √ Σ ≠
• ≥ ≤ π
• Δ χ ▶
• ֿ¹ ² ³
• L₁ L₂ L₃
• L₄ L₅ L₆
• ≅ ℕ º
• θ ∠ ∞
• ♦ ⇧ ∫

This FAQ is an attempt to answer the common TI-Basic related questions that people ask. Many of the questions are related to each other, so it is recommended that you read through the whole list. If you have any questions that aren't mentioned on the list, please post them in the forum or make a comment at the bottom of the page.

## General

Q: Is TI-Basic easy to learn?
A: Yes! TI-Basic has the majority of the standard features and functionality that you find in other BASIC programming language variants (i.e., things like user input and variables are very similar), so if you can learn those languages, TI-Basic should be no problem. If TI-Basic is your first exposure to programming, it will require some work to learn, but it is definitely worth it because TI-Basic is a fun language to use.

Q: How do I learn TI-Basic?
A: The best way to learn TI-Basic is to download a copy of the manual, and start making small, sample programs to try out the different TI-Basic commands. Once you feel comfortable with the commands, you can start putting them together to create larger programs. After that, you should move on to learning the more advanced design concepts and techniques that are part of TI-Basic.

Q: Where can I get information on TI-Basic?
A: The wiki you are currently on has the largest collection of TI-Basic information available, including commands, design concepts, techniques, and experimentation. The resources page also has a comprehensive list of TI-Basic tutorials that you can find elsewhere on the Internet. In addition, you can download all of those tutorials (and many more) on the downloads page.

Q: Do you have a tutorial about [subject]?
A: The best way to find out is to use the search box. If you don't find what you are looking for, leave a comment in the forum and one of us will try to help you. We won't guarantee that you will find everything on this wiki that you are looking for, since it is a constant work in progress and there are simply too many topics to cover. If you would like to make a suggestion for a new tutorial, you can add it to the wiki to-do list.

Q: Where did the TI-Basic name come from?
A: Back when the language was growing in popularity and use, people wanted a simple name to refer to it that was easy to remember and told you what it was. Because it is the built-in programming language of the TI graphing calculators, and it is a variant of BASIC (more or less), TI-Basic is what they called it. You should note that the name is unofficial, as TI has never actually given it a name (for example, try searching for TI-Basic in the calculator manual; you won't find it).

Q: I've seen TI-Basic spelled with all uppercase (TI-BASIC) and with mixed case (TI-Basic), but what is the correct way to spell it?
A: Truthfully, there is no one correct way to spell it. It is just a personal preference. On this wiki, however, you will probably notice that we spell TI-Basic with mixed case. The primary reason for that decision is because it is easier to read (all caps aren't very reader-friendly).

Q: What calculators support TI-Basic?
A: All of the TI graphing calculators have TI-Basic support built-in. Of course, the calculators each have their own TI-Basic variant (see next question).

Q: What's the difference between Z80 and 68k TI-Basic and Nspire TI-Basic?
A: Simply put, a whole lot. Nspire TI-Basic lacks all sorts of things that 68k (and even Z80) TI-Basic has, especially graphics commands. This mostly relegates Nspire TI-Basic to math programs.

Q: Is there a place where I can interact with other TI-Basic programmers?
A: While there is a forum available here on this wiki for TI-Basic discussion and help, the best TI-Basic forum in terms of user activity is United-TI, which has a Nspire TI-Basic section. In fact, the majority of members of this wiki are active members at United-TI, so you will probably see us hanging around there.

## Games

A: On our resources page, you will find several links to general TI related sites. One of the best sites to visit for games and programs is ticalc.org, which has the largest archive of TI-Basic games and programs of any site on the Internet.

Q: What is an emulator?
A: An emulator allows you to run a virtual form of your calculator on your computer, which is very convenient when you want to make quick changes to programs, or do any debugging or optimizing. There are several emulators available for you to use, so you should just experiment to see which one you prefer.

Q: I downloaded an emulator for my calculator, but it won't work because it says it needs a ROM image. What is that?
A: A ROM image is simply an instance of your calculator, which tells the emulator that you own your calculator. It is primarily used as a safeguard because only one person is supposed to be using any one ROM image. To download the ROM image to your computer, you just link your calculator to your computer, and then the emulator should be able to download the ROM image off of it.

Q: I have an awesome idea for a game, but I don't know how to program. Can you program it for me?
A: While we would like to help you program your game, we each have our own projects that we're working on and other real-world things (like school and a job) that occupy our time, so we aren't able to program your game for you. At the same time, if you have a specific TI-Basic programming question that you need help with, we'd be happy to help you. Even better than us programming your game, though, is you programming it yourself (see next question).

Q: What do I need to make games?
A: The main things you need to make games are your TI calculator and calculator manual. Before you actually implement a game, however, you should plan it out. This involves coming up with the idea for the game, and working out the many details of the game: graphics, gameplay, menus, and so on. Once you have all of those things figured out, you just need to put them into action.

Q: What is a good tutorial for making games?
A: Unfortunately, there really is no comprehensive game tutorial available. Instead, there are several small tutorials that each cover different aspects of games. In addition, on this wiki there are quite a few techniques covered — see for example the Special Topics section.

Q: Can I use a routine from this wiki in my game?
A: Yes! In fact, we encourage it. All of the routines on this site are designed to be as optimized and efficient as possible, so that readers learn the best way to program.

Q: Can I use sprites from other games in my own game?
A: The general consensus among the calculator programming community is that using somebody else's graphics in your game is fine, as long as you get their permission to do so. However, if you don't plan on releasing your game to the community, but instead just keeping it to yourself and your friends, then it doesn't really matter.

## Programming

Q: How do I draw graphics?
A: Nspire TI-Basic is relatively unknown to the programming community, so nobdy really knows how to use graphics commands. Hopefully, as knowledge of programming the Nspire grows, there will be more information on Nspire graphics.

Q: Can I do [task] in TI-Basic?
A: While it's possible to do almost anything in TI-Basic, whether it looks nice and runs at a decent speed is a different matter. If you have thoroughly planned your program and made it as optimized as possible, and your program still takes a minute to load and there's a five second lag after each key press, that's a good indicator that you should probably use assembly or C instead. At the same time, you should always strive to push the boundaries of TI-Basic.

Q: How do I convert a number to a string and vice versa?
A: The string() command can be used to convert any variable type to a string. To convert in the other direction, use the expr() command.

Q: My program is extremely large. Is there a way to manage/condense the code better?
A: First of all, your program will probably shrink in size after the first time you run it, due to tokenization. If that's not enough for you, see the optimization page for more tricks.

Q: Are there any undocumented features (Easter eggs) in TI-Basic?
A: Unlike the TI-83 version of TI-Basic, virtually everything we know about the Nspire calculators' TI-Basic is documented somewhere. However, there are some features that the manual doesn't emphasize but are quite useful to TI-Basic programmers.

Q: How do you disable the ON key?
A: This is impossible in pure TI-Basic. Using Try..EndTry blocks, you can disable the ON key during text input, but the only way to disable it universally is with an assembly program or Exec code.

Q: How do I hide the code of my TI-Basic program?
A: This is impossible — if someone can run your program, they can see the code as well. You really shouldn't try to hide the code too, but let others learn from it instead.

## Troubleshooting

Q: My calculator can't handle expressions with several variables, (e.g. it can't factor x^2+y^2+2xy). How do I fix this?
A: When you type xy next to each other, the calculator doesn't treat it as multiplication, but as a different variable called "xy". Write x*y instead and you should have no trouble.

Q: I've entered a simple expression and am confident of the result, but the calculator gives something bizarre! (For example, d(x^2,x) gives 10 as a result) What's wrong?
A: Make sure all the variables you're manipulating in a general way (x, in the example) are actually undefined. If not, delete them using DelVar. Otherwise, their values will get substituted and you'll get a weird answer. This can result in other surprising errors as well.

Q: I think some of the routines on this wiki have errors in them, because they didn't work for me. Could you please correct them?
A: We have strived to make sure that all of the routines on this site work correctly and without problems. However, if you are 100% sure that you entered the routine correctly into your calculator, please leave a comment on the page using the comment function at the bottom of the page. Somebody will then be able to correct the routine so that it won't cause anybody else any problems.

Q: I was playing a TI-Basic game and my calculator suddenly shut off. When I turned it back on, my memory was erased. What happened?
A: Your game had a glitch of some kind, and it caused the calculator to crash. This is usually caused by Assembly programs, as the majority of TI-Basic errors are caught by the calculator. You don't have to worry very much about TI-Basic crashes because they don't do any real permanent damage to the calculator, but because it is very annoying to have to replace all of your programs after your RAM is cleared, you should always store any important files in the archive.

Q: When I tried to run my TI-Basic program, I got this error message. What does it mean?
A: Most error messages are fairly self-explanatory, but if you're still confused, you should consult our list of error messages with a more in-depth explanation.

## Assembly/C

Q: How does TI-Basic compare to Assembly or C?
A: TI-Basic is much easier to learn and program in, but it is rather slow because it is an interpreted language. TI-Basic has many good graphics commands, but will still be slower than assembly or C programs; also, TI-Basic programs are limited in control over the calculator.

Q: Is it possible to convert TI-Basic to Assembly?
A: No, it is not. There are currently no working programs available that will convert TI-Basic to Assembly (note: I say working because people have tried creating TI-Basic to Assembly converters, but nobody has completed one yet), so the only way you can convert a TI-Basic program to Assembly is by learning Assembly and porting the program yourself. You could also try asking an Assembly programmer to port it for you, but most people won't do that unless the program is pretty small.

Q: I want to use an Assembly program with my TI-Basic program, but I can't figure out how to use it. Can you help me?
A: Unfortunately, we really can't do much for you. What we recommend is that you contact the author of the Assembly program and ask them for help. They wrote the program, so naturally they should be able to answer any questions that you have.

## Program Editor

Before you start by making your first code, you must learn how to create a program(Make sure you are in the Calculator application). Press Menu and go to 8. Then, press 1 and 1 again. A window will pop up prompting the name of the program. Put in the name, then select the type (program or function) and press OK. Now, you are in the program editor, you can now move to the tutorials underneath.

## Hello World!

The following program, when executed, will display the phrase "HELLO, WORLD!"

Text "HELLO, WORLD!"

Other Methods:

If you want to include more functionality to displaying text, you can use Disp.

Text "HELLO, WORLD!"

Is the same as:

Disp "HELLO, WORLD!"

## Who's Greater?

In this code, if c is greater than d, the program will say "yes" or otherwise it will say "no".

If c>d Then
Disp "Yes"
Else
Disp "No"
EndIf

author: Zixcoder
version: 1.4.1
summary: 'A Minesweeper program that will sweep you into a fun, classic puzzle! Find all the mines on the screen to win. This version includes varying difficulties, different text and control styles, custom options, automatic clearing, and a saving and loading feature, all written in pure TI-BASIC for the TI-84+C calculators. Happy solving!'
graphics: '0'
platform: '0'
puzzle: '1'
rpg: '0'
strategy: '0'
sports: '0'
casino: '0'
board: '1'
utility: '0'
misc: '0'
compatibility: ff