:ClrDraw

:For(A,0,1000

:A->rand

:Pt-On(A,10rand

:End

This is meant to be run with a window range of Xmin=0, Xmax=1000, Xscl=1, Ymin=-10, Yscl=1, Ymax=10. ]]>

` ``:ClrHome :Input "X1: ",X :Input "Y1: ",Y :Input "Z1: ",Z :Input "X2: ",A :Input "Y2: ",B :Input "Z2: ",C :Disp "DISTANCE:" :Pause √((A-X)²+(B-Y)²+(C-Z)²) :ClrHome`

]]>
PROGRAM:BREAK

` ``:Stop :"LOL "→Str1 :While 1 :Disp Str1 :Str1+Str1→Str1 :End`

The way this program works is it assigns a phrase ("LOL ") to Str1. It then infinitely adds that string to itself. It also displays the string so that you can watch as your calculator is dying. :) This is quick and easy to program. Don't abuse it.

]]>:1→X:1→Y

:DelVar [B]{8,16→dim([B]

:6→[B](randInt(2,7),15

:6→[B](randInt(2,7),14

:For(A,1,8

:6→[B](A,randInt(2,15

:End

:1→[B](4,16

:Output(Y,X,">

:Output(4,16,"*

:Repeat [B](Y,X

:Repeat Ans

:getKey→G

:End

:Output(Y,X," // 1 space

:X-(G=24 and X>1)+(G=26 and X<16→X

:Y-(G=25 and Y>1)+(G=34 and Y<8→Y

:Output(Y,X,">

:End

:ClrHome

:"YOU "+sub("WIN!!LOSE!",[B](Y,X),5 ]]>

:1.1→B

:{4Ans→A

:ClrHome

:For(A,1,E2

:randInt(1,16)+.1randInt(1,8→C

:Repeat C=Ans(1

:A→dim(⌊A

:⌊A(1

:Output(10fPart(Ans),int(Ans),"O

:Output(10fPart(B),int(B)," // 1 space

:Output(10fPart(C),int(C),"*

:getKey

:If Ans=45

:Goto 0

:If Ans=34 or 2>abs(Ans-25

:Ans→K

:⌊A(A→B

:⌊A(1)+(K=26)-(K=24)+.1((K=34)-(K=25

:Goto 0

:Ans+16(not(int(Ans))-(17=int(Ans)))+.8(not(fPart(Ans))-(.9=fPart(Ans

:augment({Ans},⌊A→A

:End

:augment(Ans,{Ans(A→A

:End

:Lbl 0

:ClrHome

:A

(also this is on ti 84 plus also what do you mean by //1 space)

]]>Like I said, I understand if you have your own projects.

If anyone has a idea of what we could do or if your interested please do not hesitate in joining

]]>` ``:Input "BASE IN=", A :Input "BASE OUT=", B :Input "INPUT", Str1 :0->C :"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdef" -> Str0 :length(Str1) -> D :" " -> Str2 :For(E, 1, D) :C + ((inString(Str0, sub(Str1, E, 1)) - 1) * A ^ (D - E)) - C :End :1 -> E :While E = 1 :C / B -> D :fPart(D)->A :sub(Str0, round(A * B + 1, 0), 1) + Str2 -> Str2 :D - A -> C :If C = 0 :0 -> E :End :"=" + Str2 -> Str2 :Disp Str2`

Not the prettiest, but something I came up with on the fly a while ago.

Just thought some people could use it

` ``:Lbl 10 :ClrHome :Menu("UNIT CIRCLE","CONVERSIONS",11,"UNIT CIRCLE",3,"QUIT",4) :Lbl 11 :ClrHome :Menu("CONVERSIONS","DEGREES -> RADIANS",1,"RADIANS -> DEGREES",2,"BACK",10) :Lbl 1 :Input "DEGREE MEASURE: ",D :Radian :Disp Dº :Pause :Goto 11 :Lbl 2 :Input "RADIAN MEASURE :",R :Degree :Disp R^^r^^ :Pause :Goto 11 :Lbl 3 :ClrHome :Menu("UNIT CIRCLE FUNCTIONS","ANGLE FROM DEGREE",5,"ANGLE FROM RADIAN",6,"ANGLE FROM COORDINATE",7,"BACK",10) :Lbl 5 :Input "DEGREE MEASURE: ",A :Degree :Goto 9 :Lbl 6 :Input "RADIAN MEASURE: ",A :Radian :Goto 9 :Lbl 7 :Input "X=",X :Input "Y=",Y :Degree :R▶Pθ(X,Y)→A :Lbl 9 :StoreGDB 1 :ClrDraw :AxesOff :ZStandard :ZSquare :Horizontal 0,BLACK :Vertical 0,BLACK :Circle(0,0,9,BLUE) :Line(0,0,P▶Rx(9,A),P▶Ry(9,A),RED) :Pause :RecallGDB 1 :Goto 3 :Lbl 4 :Stop`

ClrHome

Randint(1,6)+Randint(1,6)->A

Output(1,2,"You Rolled A…

Output(5,8,A ]]>

The ArdHub is based on an Arduino Nano, so it's about $5 to build, and has a lot of similar features, as well as being compatible with the original TI-84+ and the TI-84+CSE (it is not compatible with the TI-84+CE though).

You connect to the Arduino over miniUSB and the calculator powers the Arduino and can talk back and forth with the Arduino. The ArdHub allows you to control 10 data pins in which you can read from or write to using TI-BASIC. It also has a speaker that beeps at you if you send it a command that makes no sense. You can also control its on board LED or make the speaker beep manually.

Here's a demonstration of TI-BASIC controlling the Arduino to blink the on-board LED, and whenever I press the 1 key, it beeps:

Here's the code for this:

` ``"HUB ON" Asm(prgmARDHUB 0->K While K≠45 "SET LIGHT ON" Asm(prgmARDHUB "SET LIGHT OFF" Asm(prgmARDHUB If K=92:Then Disp "BEEP!" "BEEP" Asm(prgmARDHUB END getKey->K END "HUB OFF" Asm(prgmARDHUB`

As you can see, sending commands is easy. Simply type the command as a string and then call the prgmARDHUB driver and it will send the command to the Arduino.

"SET LIGHT ON" and "SET LIGHT OFF" control the onboard LED. "BEEP" makes the speaker beep.

There's also "SET BBX ON" where X is a number 1-10 that pulls pin D0-D9 high respectively, and "SET BBX OFF" does the same except it pulls the pin low. "READ BBX" will let you read pins D0-D9. The calculator will request the status of the pin and wait for the Arduino to respond and then the status will be stored as a 0 (low) or a 1 (high) inside of the Ans variable.

That's basically how it works.

]]>Assmebly language: 64k Programming ]]>

Proof:

]]>

You have 15 days to create a tycoon/economy game.

It can be about anything, you will lose points if you step away from the theme!

You will be assigned a certain number of points per category, and those points will be used to determine.

The categories are:

- Code Cleanliness: ( Will be a ranking from #1 to #entry count. Example, if there are 5 entries then it goes from 1-5. One is if you're the best out of all of them. Score will be (entryCount-rank)*10)
- Fun: ( Opinionated, based on what I think. Chances are if you find your game fun I will too. If you reply to someone's game saying it was fun, then they get bonus points. This doesn't apply if you replied to yourself saying your game was fun. Will go from 1 to amountOfEntries*10, so if there were 5 entries it would be from 1-50. Each person who replies to your submission saying your game is fun multiplies your final fun score by 1.25, and it can stack! No alt accounts allowed for this! )
- Size: ( 1-(sizeOfProgramInBytes/largestEntrySizeInBytes)*(amountOfEntries*10) )
- On Theme: (Scale from 1-10*amountOfEntries, example, if there are 5 entries its from 1-50. Score on scale based on how on theme it is, more of an opinionated category. )
- Final Score: (Code Cleanliness * Fun * Size * On Theme)

The leaderboard for games will be edited onto the end of this post at the end of judging period, which will be *October 20th*.

It's unlikely many people (If any!) will participate in this competition, so I will probably only need 5 days to do the judging.

You may only use Ti Basic for this, as I won't be able to judge code cleanliness fairly because of lack of experience.

Be fair to your competitors (if any), this is all just for fun!

You may not use anything you or someone else has made before this competition, such as any library,

all code in the game and any components that the game uses must be written during the developing period of the contest.

Example, you may not use a drawing library someone made, even if they put it on the internet during the contest's developing period. If you are not sure if you are breaking the rules, then ask me in a reply.

Breaking any rules will disqualify you!

When you submit just reply to this post and put your submission in this format

` ``COMPETITION ENTRY Platform: Game Title: Game Description: Download:`

Example:

` ``COMPETITION ENTRY Platform: TI-89 Titanium Game Title: Golfing Company Game Description: Manage a golfing company! Download: downloadlink`

Preview:

Disclaimer: This pickle has no inspiration for drawing, other than I felt I needed to bring this into the universe. There is no preview picture of the pen to raise your expectations. The final result may actually exceed your expectations.

2nd place: A picture of a pen, a nice feeling.

Disclaimer: There is no preview picture of the pen to raise your expectations. The final result may actually exceed your expectations.

3rd place: A nice feeling.

If you have any questions or suggestions feel free to reply with them!

]]>Goals

1. Better and smoother gameplay

2. Have all original characters, (Scorpian, Subzero, Sonya, Kano, Johnny Cage, Raiden and Lui Kang)

3. Have some original fatalities

` ``ClrList L₁ Repeat A Input "Factors of ",A:End ClrHome Disp "Finding factors","of","0 % Complete... Output(2,4,A For(I,1,A For(J,1,A If A=JI:Then 1+dim(L₁→dim(L₁ J→L₁(Ans End If getKey:Then A→I:Ans→J {A→L₁ End:End Output(3,1,int(100I/A End ClrHome Disp "Factors of Output(1,12,A SortA(L₁:L₁`

Is there a way to make this faster and smaller? Thanks for your help!

]]>I have made a table in excel, copied it to spreadsheet, but I don't know how to call single cell values from it

I have named both columns (A and B)

When I am in calculator tab, A is a list, and B too.

If I input A(0) or A(0,1) or something like this, prompts an error with "The name is not a function"

And I would also want to use those values in a program, but I don't know how to call those values from the program.

Thanks in advance

]]>I hope everyone is having an amazing day. I have been browsing this site for a few months and now I have taken the opportunity to join the site as a user. I am very interested in learning how Ti-BASIC works, specifically the graphical user interface and the backend. Hopefully I can learn some thing while I am here about that and begin to develop software for other people and give back to the community. If none has any advice I would appreciate it.

-Zach Payne

]]>I have no idea what happened on this one, but it appears to be showing a section of the a table where the symbols are located. At some point today the OS refused to turn the calculator off. Fortunately, I had Doors CS installed and I was able to turn off it off that way. A few hours later I decided to archive my programs so I could clear the RAM without losing anything, in order to fix the issue. The second I had finished archiving my programs I was treated to this. I had to pull the battery to fix it.

Tell us about your worst crashes on your calculator or on computer.

]]>1. Detecting whether a calculator is in radian or degree mode. This is useful for programs that should input the answer in the angle measure unit that the calculator is currently in.

:If int(sin(90

This will run the line of code after it only if the calculator is in degree mode. Since the sine of 90 (degrees) is 1, it will run the next line of code if it interprets 90 as 90 degrees, which it would only do if the calculator is in degree mode. If the calculator is in radian mode, you get a messy decimal less than one, so the integer part will be 0 and the line will not run.

Here is an optimization of the code:

:If int(1°

This functions the exact same way, but it saves time and takes up less memory. If the calculator is in degree mode, it will interpret one degree as one, and take the integer part of this, which is also one. If the calculator is in radian mode, it will convert 1 degree to radians, which is a messy decimal smaller than 1. Therefore, it’s integer part is 0, and it will not run the next line of code.

Here is a line of code that will run only if the calculator is in radian mode. I would suggest using the ones above in all cases where the optimization would be better, but sometimes this may be useful:

:If not(int(1°

This incorporates a not because it is quicker and smaller than the ≠ operator, and it can also retain its Boolean nature, which speeds up calculation time much faster.

2. Expressing radian units in π/x form. This also sticks the radian symbol at the end. It shouldn’t be that hard to remove if you don’t want it there. If the angle measure in radians can not be expressed with π, it will round the number to 2 decimal places. This may not be fully optimized, but then again it might be. No matter how hard I look at a bit of code, I always assume that there is a possibility that someone might know better about how to simplify it. Please comment if you find a way. It shouldn’t matter all that much, but I would be really interested to see. I used the finance variable ”ℕ” for the number in my real program, as it is the fastest variable on the TI84+CE calc, but I didn’t want to get anybody confused so I will just use an “A” as the variable here for the radian measure. Also, please note that the tiny letter r at the end means to input the radian symbol here, NOT a real letter r. Also, the program may not correctly identify the measures which are divisors of π if the number has a decimal expansion smaller than 10 digits, because the calculator has a π built in that is accurate, and fPart can identify any fractional part up to 10 digits. This shouldn’t be a problem, but if it is undesired you can easily replace the first π in the code with a value of pi equivalent to the amount of decimal places you would like. My code only rounds if it has already been detected to not be a divisor of π. Feel free to also change the Disp part to anything you like. The actual calculations are complete after the answer has been stored to Str1, so do anything you like with Str1 after that point.

:If not(fPart(A/π

:Then

:”π/“+toString(A/π→Str1

:Else

:toString(round(A,2→Str1

:Disp Str1+”r”

:End

I hope you enjoyed! Please inform me of any possible optimizations or simpler subroutines, as I personally like to keep my programs as optimized as possible.

]]>Anyway the challenge is to take a number and round it up, like the Ceiling( command for the 68k calcs.

I was able to do it in one line but I couldn't reduce the number of bytes from my first attempt which was 8 both times.

]]>At one point in my ongoing, fascinating journey in TI-BASIC programming I realized that I could pretty my programs up with better characters. I started by making use of some characters in the statistics menu, particularly the x and y coordinate subvalues (x1, y1, and so forth). However, while these are useful, there are some characters that just seem hopeless to obtain. And in fact, many ASCII characters that are supported by TI calculators are not actually used anywhere in the OS, which means that they cannot be obtained without a computer. Yeah, you could write a fancy flash app or a painstakingly complicated assembly program, but at that point it doesn’t seem worth it anymore, and it almost feels like cheating on TI BASIC (which is just fine to do, but it usually takes more effort and is reasonably unfashionable). Anyway, here is a tricky method I came up with for “decanting” a particular character, as I call it, directly on the calculator, as well as a way to solve your character problems without the need of a third-party flash app or an outside assembly program.

The basic idea behind “decanting” is the lack of support for mathprint in string variables. The trick to decanting something is simple. You go to the home screen to enter something in. First, place a quote mark. Now, open up something like the fraction MathPrint option. You should see 2 dotted box outline characters, which means you should type something in. Not today, however! Leave them blank, and now place a quotation mark after it. Now, press enter. See how the MathPrint was converted to string format, but the empty box characters are still there? Paste your input into a new input on the home screen, but this time store it to a string variable. Now, enter a blank program, recall the string variable, and you can edit each character. Delete the bolded division sign that you will find, as well as one of the empty box characters, and you have now successfully isolated the empty box character with which you can do whatever you like! Store it to a string, output it as text, display it, whatever.

A neat way to get all of the supported characters on the calculator is through the computer. Open up the TI link software, and select the “write new program” option. Now type in whatever characters you want (provided they are supported) make the program store them to a string variable, and now send it to your calc. This works for all supported characters, but I have found that the empty box gives you an “invalid token” error, the same you would get with an unsupported character so, as far as I know, my decanting method is the only way to get it without the use of a flash app or assembly program. Hope you enjoyed!

]]>- The user must type a real number indicating to find out the -nth digit of Pi
- The program must be simple as possible
- (OPTIONAL) the program can store the previous digits of Pi in a string (Begin string: "3.")
- Do not use the command summation Σ. Or any other complicated commands
- The easier the better
- Make the calculations as fast as possible
- Display the digit in Ans (obviously)
- Make it compatible for
**ALL**graphing calculators (With the Input command and other necessary commands) - ?<1000 bytes (extra credit <460)
- SIMPLE calculations, no formulas

` ``CLASSIC ClrHome Lbl 0 Pause "Our House, Disp "In the middle of Pause "our street: Goto 0`

From the famous song "Our house". Let me know what you think! ]]>

Let's say I have L1={3,1,5,7,3,5,8,3,4,5,1}.

If I wanted to find the biggest number, I would use max(L1). But I want the row of the biggest number, which is 7 or L1(7). Is there a way to do this without having to run down the whole list and comparing each value?

**Note Taker**Jot down and store notes for reference**Date Tracker**Write down dates for important events; like: book due dates, events, etc.**Organizer**Save information about phone numbers, emails, dates, calendars, times, etc.**All of the above**Or just all of those.

Let me know! I'd love to hear ideas!

]]>You may also follow the project over on the GitHub repository!

For the curious, my key input is simply the [math] key and everything to the right and below it, all the way down to [enter]. These keys get converted to screen locations which allow you to slice fruit.

]]>I have a plain TI_84+

But then gives me this error:

But then…

Is this just me? Because my mind is BLOWN. It **just** sent it. Seems like a bug in TI-Connect CE.

Despite the obvious. :D

` ``ClrHome Lbl 1 getTime→L₁ L₁(1)→H iPart(H/10)→A (fPart(H/10)*10)→B L₁(2)→M iPart(M/10)→C (fPart(M/10)*10)→D L₁(3)→S iPart((S/10)→E (fPart(S/10)*10)→F If A≥2 Then Output(5,6,1) A-2→A Else Output(5,6,0) End If A≥1 Then Output(6,6,1) Else Output(6,6,0) End If B≥8 Then Output(3,7,1) B-8→B Else Output(3,7,0) End If B≥4 Then Output(4,7,1) B-4→B Else Output(4,7,0) End If B≥2 Then Output(5,7,1) B-2→B Else Output(5,7,0) End If B≥1 Then Output(6,7,1) Else Output(6,7,0) End If C≥4 Then Output(4,8,1) C-4→C Else Output(4,8,0) End If C≥2 Then Output(5,8,1) C-2→C Else Output(5,8,0) End If C≥1 Then Output(6,8,1) Else Output(6,8,0) End If D≥8 Then Output(3,9,1) D-8→D Else Output(3,9,0) End If D≥4 Then Output(4,9,1) D-4→D Else Output(4,9,0) End If D≥2 Then Output(5,9,1) D-2→D Else Output(5,9,0) End If D≥1 Then Output(6,9,1) Else Output(6,9,0) End If E≥4 Then Output(4,10,1) E-4→E Else Output(4,10,0) End If E≥2 Then Output(5,10,1) E-2→E Else Output(5,10,0) End If E≥1 Then Output(6,10,1) Else Output(6,10,0) End If F≥8 Then Output(3,11,1) F-8→F Else Output(3,11,0) End If F≥4 Then Output(4,11,1) F-4→F Else Output(4,11,0) End If F≥2 Then Output(5,11,1) F-2→F Else Output(5,11,0) End If F≥1 Then Output(6,11,1) Else Output(6,11,0) End Goto 1`

Also, how do you do sprites larger than 8x8? I figured out how to do the multiple sprites in one picture thing with the pointer for grayscale improvements, but in Cookie Clicker Axe's source code, the cookies sprite is like 32x32. How is this done? I tried making a 32x32 sprite but it didn't work.

**EDIT: After looking into the source code further, I found that it was a Bitmap and not a Pt-On or whatever. I edited my code to do that, but the result looked nothing like what I had programmed my sprite to look like. Is there a different hex format? Is there a tool to convert pixel art into bitmap hex?**

I have an 84+se

]]>And, for those of you who live in the US, don't forget to remember the twin towers on 911! (Just sayin')

]]>I am new to this site as a user, although it has been helping me out for a while now. I intend to help this site out by attempting to update things periodically as they apply to the new(ish) TI-84+CE, a calc that I own and love. I have recently performed several dozen tests to determine to a high accuracy the speed of variables, for which I can now say the curly n variable (used for sequential equations) is actually slower than the finance variable bold N and I%, at least on the CE. I am looking to contact an admin regarding how they might use this data, which I have quite a few tables and even graphs of.

]]>- Text input
- Smallest program size
- ROT 13 string output from text
- Allow the user to decide which ROT algorithm they want to use. (1-25)

with an astonishing 42 bytes…

` ``PROGRAM:LEAP Input Y Y/4 100fPart(Ans If not(Ans Y/100 0<10fPart(Ans`

` ``Y/4`

After the user inputs the year, it divides the value by 4.

` ``100fPart(Ans`

Multiplies the value by 100, extracting the decimal place.

` ``If not(Ans Y/100`

Checks whether to see if the answer is divisble by 4. If it is, check whether to see if the year input is divisible by 100.

` ``0<10fPart(Ans`

If the answer is greater than 0, it is a leap year. Else it is not.

This is what it looks like when running the program:

]]>

` ``timeCnv(startTmr→L₁:Ans //home screen`

` ``For(I,1,R ... int(100I/R Line(0,Ymin,Ans,Ymin End`

My question is not why this happens but how to use a debugger(preferably WabbitEmu's) and possibly patch the OS. I haven't found any guides that explain how to do this which is why I am asking here.

If you do have insight into RAM clears in general as opposed to debugger knowledge that would also be helpful.

]]>The screen said "Mem cleared for Singapore"

I know this is a place, but what does this mean?? I did this on my TI-84 Plus, and I also tried on my Dad's old TI-83+, with Y1 function crashing as a result.

Does anybody know what this means?

(To do this, reset defaults using via 'Reset…' menu, NOT any assembly programs)

Is there an atari game somewhere on here?

]]>*"Run for your life from buggy Apple iOS software! I mean it! It will ruin your files! START RUNNING!"*

So if this was my list

12

15

18

11

Then I if could select to subtract 3 from each number to get

9

12

15

8

Ideally I'd like to store these as a list, but for my use case I would need to add all those numbers together ( having the list is just a quick way to cross reference the results with friends).

I messed around with the calculator a bit, but I couldn't anything to work. I appreciate any help! Thanks y'all

]]>Number represents:

- Common
- Uncommon
- Rare
- Very Rare
- Nearly Impossible

` ``randInt(1,randInt(1,randInt(1,randInt(1,5`

Would this be considered the smallest formula/line for probability in TI-BASIC?

Or is there a simple way?

Because let's be honest, what other site in the *world* would have a solution for this?

8→B

For(X,1,A

For(Y,1,B

For(θ,1,5

Text(55,7,X

Text(55,1,Y

If Y=0

1→Y

If [A](Y,X)≠0

Then

If [A](Y1,X1)=1

"[)))["→Str1

If [A](Y1,X1)=2

" '! "→Str1

If [A](Y1,X1)=3

"°²1²°"→Str1

If [A](Y1,X1)=4

"X:X"→Str1

End

If [A](Y1,X1)>0

Text(6(Y-1),θ+6(X-1),sub(Str1,θ,1

End

Text(6(Y-1),θ+6(X-1)," "

End

End