8

I made a program that is similar to clearing RAM. However, it always leaves a "Done" message followed by a dotted line after being executed. In addition, if you scroll up, you can see that the program was executed. Is there a way to remove both of these things? If you can't hide the fact that a program was executed, could you suppress the 'Done' message?

I have tried adding ClearHome" and " as the last line of my program, and neither stops the Done message from displaying.

Bonus points if your solution can be contained within the original program.

  • 2
    I don't know of a way of clearing these programatically, but you can scroll up to highlight either the input or output lines in the history (it doesn't matter which) and hit the backspace button to delete both. – PGmath Dec 14 '15 at 02:54
  • @PGmath I already know about that solution. A little tedious to do everytime, but it is a very simple solution to this problem. Looking for a programatic solution (if one even exists). –  Dec 14 '15 at 02:55
  • Unfortunately I don't think it does, I don't know everything there is to know about Ti-Basic though (but I do know quite a bit). – PGmath Dec 14 '15 at 02:56
  • The only way I can think of is messing with some assembly stuff to change whatever makes it think a user made program is running. But that would be hard and could easily fail. – fuzzything44 Dec 14 '15 at 16:04
  • What do you mean by "similar to clearing RAM"? Do you mean showing the RAM cleared screen? – user3932000 Dec 27 '15 at 01:40
  • @user3932000 It clears all the variables I could think of and sets the modes the way I like them. [Source here](https://raw.githubusercontent.com/AnAverageHuman/TI-Basic-Programs/master/RESET/RESET_source.txt). –  Dec 27 '15 at 04:15
  • @JeffreyLin Forgive me for asking, but why do you need to get rid of the Done message then? If you don't want to see the Done message in the history, you can just go to `Mem` and press `Clear Entries`. – user3932000 Dec 27 '15 at 05:01
  • @user3932000 I just tested it on my TI 84+ CSE, "Clear Entries" itself creates a Done message. –  Dec 27 '15 at 05:03
  • @JeffreyLin You can then scroll up so that the Done message is selected, then press Clear to erase it. – user3932000 Dec 28 '15 at 07:20

4 Answers4

5

In a separate program, type the following line of code:

AsmPrgmFDCB00AEC9

Then at the end of the original program, type the following line of code:

Asm(prgmPROGRAMNAME

It is recommended that you test this out first with all programs archived, just running the above line of code alone, in case it fails. Hex codes like that one have been known to fail, and sometimes clears the RAM.

You can also try these other hex codes, but always keep in mind the warning above. My RAM has been cleared by this before, so use caution:

http://tibasicdev.wikidot.com/hexcodes

This works on TI 83 and 84, may be different with other calculator types.

EDIT:

I found a way to do this without an external program, and is much simpler.

Just add the following line of code to the end of your program:

Output(1,1,"  //no space, just a quote

You may or may not have to add ClrHome before that line of code.

This should prevent the Done message from appearing at the end.

Hope this helps!

1

Put an empty string at the end of your program, so your last line looks like this:

""

Or this

"

The empty string is stored to ans and will be displayed as a blank line rather than the Done message.

There is also an assembly hexcode to do this without leaving the blank line at the top:

FDCB00AEC9

When run at the end of the program using one of the various methods of running assembly, it will leave you with a blank, fully operational homescreen.

Johnny Dollard
  • 708
  • 3
  • 11
  • 26
  • 1
    Yes, this worked more reliably for me than using `Output()`. In order to suppress the blank line at the end, you can just output a final variable, if that suits your program. I found that in my app, the final variable being printed changes based on an `If` so in order for that to work, I had to create a variable which would *always* be printed in the final line and set that dynamically based on earlier logic. Slightly messy, but works well, with no "Done" nor blank line added. – Simon East Feb 25 '22 at 12:22
0

Outputting an empty string will prevent the Done message and also preserve Ans, in case a calling program is expecting to use it.

Output(Y,X,"")

See http://tibasicdev.wikidot.com/output for more details on Output(.

Michael Hoffmann
  • 2,411
  • 2
  • 24
  • 42
-3

In your situation, run Clear Entries (found under Mem), then scroll up so that the Done message is selected and press Clear to get rid of it.

user3932000
  • 671
  • 8
  • 24
  • Not sure why this is downvoted, since this is exactly the solution that works for OP's situation. (And also the solution I use for my own "clear memory" program) – user3932000 Jun 05 '16 at 20:28
  • 2
    He isn't looking for a way to remove the Done message after it appears, he's looking for a way to keep the Done message from ever appearing. – Douglas - 15 year old Pythoner Jan 26 '17 at 16:17
  • @Douglas-15yearoldPythoner That is not what the OP is asking. He is creating a program that simulates wiping the RAM (I'd imagine deleting all local variables and lists and whatnot), and he wants to hide the `Done` message that prints after running the program, so that the calculator has more or less a clean slate. This is exactly how to do it, and any assembly solutions to globally and permanently suppress the `Done` print feature are overkill. – user3932000 Jan 27 '17 at 06:32