I received my Ti-83 Premium CE this summer (which is the French TI-84 Plus CE), and I thought it was missing a shell. No sooner said than done! Today, I present PHASM. The name is a pun between ePHarius ASM and "PHASM(e)", which is a stick insect in French.

What is PHASM?
With PHASM you'll be able to execute Archived and Assembly programs (without the Asm( Suffix)! Just execute once Asm(prgmPHASM) and that's all there is to it!
You can also display a menu with [Alpha] [X,T,O,n] in the program editor which allows you to go to any Lbl you want instantly, and edit archived programs without unarchiving them! Finally, it enables you to edit the memory of your calculator in pressing [ALPHA]+[VAR], it could be very useful if you want to cheat :p

Features and To-Do List
  • Works on Ti-84+CE and Ti-83 Premium CE
  • Executes archived (sub-)programs
  • Executes assembly (sub-)programs (without the Asm( suffix)
  • Allows you to jump to any Lbl you want in pressing [Alpha]+[X,T,O,n] in the program editor
  • Allows you to edit archived program
  • Includes a Memory Editor. Just press [Alpha]+[VAR] to edit an AppVar or the raw memory (PLEASE READ THE MEMEDIT-README)
  • Languages available : English and French. Feel free to ask me if you want to add a language!
  • Compatible with Cesium
  • Allows you to create your own plugins to add to PHASM
  • Forces the APD when pressing Alpha+ON

Red = To do
Orange = In progress
Green = Done

You can download it here!

PS : You can also find the source code on github : Here.
AWESOME! If I weren't already using Cesium, I would switch over to this in a heartbeat. And I still might once you add the ability to execute archived programs and resistance against RAM clears.
Yes, I should add a resistance against RAM Clears, it is a good idea Wink
Epharius wrote:
Yes, I should add a resistance against RAM Clears, it is a good idea Wink
How would you do such a thing? I know that Cesium archives itself on first run so that it can be easily restored, and Doors CE will do something similar. You could do that, although the user would still have to take the extra step of un-archiving the shell after the calculator resets.

Congratulations for this release! As I said in my PM, you should consider uploading to our Beta Programs Archive directory, which is just for this sort of thing.
Your hook should not exist in RAM. It should be located in the archive. In addition, Cesium does not archive the program, it is two programs in one, one of which is copied to the archive and executed. Also, hooks don't need pages anymore. Wink Best of luck, and nice work! Smile
Kerm : Il will upload PHASM soon, don't worry Wink

Mateo : how can I do? HL contains the address but in RAM, doesn't it? I mean, _SetHomeScreenHook needs as input : HL = hook's Address. How can I say "the address is in the archive"?

Now, PHASM can run archived programs! And it deletes the temp programs even if an error occurs.
I updated the first post.
Great; that's exciting! And I see that it also supports Cesium programs; what does that mean?
Yes, finally I did it! I stopped for a long time, that's right.

Before, PHASM and Cesium used pixelshadow2, and Cesium overwrote PHASM when it was executed. Now, at the cost of an AppVar and a Group, PHASM is (almost) "out of danger". "Almost" because there's always the case "what happens if the user deletes a Group that has been created before the Group that PHASM uses? The garbageCollect moves the Group, and the hook pointer points to an empty place.". But, well, in this case, the user just has to run again the program PHASM.

Anyway, I'm going to update the Cemetech archive Wink
Ahh, that makes sense. Good work. Smile Doors CE does something similar: it stores a hook that points to the archived version of Doors CE, so its HomeRun hook works as long as the archived copy doesn't move. If it does, you need to re-run Doors CE so it can fix the pointer. Hooray for updating the copy in the Cemetech Archives; I hope that you'll get some useful feedback. I see that editing is the next thing on your agenda, and having implemented that in Doors CE, I wish you the best of luck. Smile
So I was using the version from the download you provided in your first post, and noticed that after I ran the program, the [XTON] key outputs the 'prgm' token, instead of X (or T, 0, etc.). In fact, it used to output 'prgmPHASM', but after turning PHASM on and off a few times, it only outputs 'prgm' now. IS this a bug, or is it intentional?
Oh! I didn't see! Thanks a lot. I will fix it as soon as possible (I think tomorrow). It's a funny bug. It comes from the value that returns PHASM. I just have to change this value to kKey (I don't remember the name of the key, but you understood. If you didn't, does not matter :p)
Hello everyone,
I've been working on this feature for a month, and here it is now! You can now edit any archived Basic program as you would do an unarchived one. No need to go to the memory management menu then back to the program menu and vise-versa, now you just launch and edit everything without any difference!

So let's sum up what PHASM can do:

It can execute assembly and Basic programs, archived or not
It is possible to use Cesium in parallel
You can navigate in your program easily thanks to the label menu, using the [ALPHA], [XTOn] key combo while editing a program
And you can now edit archived programs without unarchiving them beforehand

That's already quite a list, and we could call that a finished shell. BUT, there's always a but, and I wouldn't want the 1.0 version of PHASM to be half complete. I'll only consider it complete when the following features are done:

Allow the execution of subprograms, assembly or Basic, archived or not
Possibility to force APD, for example with [ALPHA], [ON]
Possibility to (un)archive programs directly from the program menu

As long as these are not implemented, I wouldn't call PHASM finished. And there are also some bugs here and there but don't worry, none cause a RAM Clear, only some ERR:SYNTAX and stuff like that.

Well, everything seems to be said. Just one last thing, I welcome any idea of features or whatever you would like PHASM to do!

Caleb_Hill : I solved your problem, you can press [X,T,O,n] as you could do without PHASM Wink
You can download PHASM here.
Epharius wrote:
Yes! Finally...
You can now edit archived programs, it means that you don't have to unarchive any program anymore! (Maybe some bugs remain, I will fix them as soon as possible)

Caleb_Hill : I solved your problem, you can press [X,T,O,n] as you could do without PHASM Wink
You can download PHASM here.

Awesome! cant wait to start using this again (atleast until Doors CE 9 comes out (although the instant Lbl goto function is cool))
Yeah, the main features like "executes archived programs" are not the most interesting! I'm gonna edit my previous post to take stock of the features I will implement.

I'm very impatient to use CEmu, it will really speed up the devlopment Smile
Congratulations on adding things like editing archived programs, Epharius! This is great news, and I'm glad to see that Doors CE will have stiff competition with PHASM and Cesium to help push me to improve it further. Wink
This release is very important for me, I didn't expect me to be capable to do something like that x)
(don't look at the source code, we can call it a "sty" :p)

Well, now I "Allow the execution of subprograms, assembly or Basic, archived or not "!
Well, I wanted to try CEmu and I didn't know what to do since I don't have any project involving my PCE so I did a screenshot showing PHASM's main features like running archived assembly and basic programs, editing archived basic programs and navigating with the label menu.
I didn't even see the Lbl list feature; that's rather cool. I'm tempted to steal that idea for Doors CE, with your permission. Smile Thanks for screenshotting PHASM, Hayleia!
Hey Smile
I don't really see the point in having that feature in two distinct programs. I think it would be better if PHASM and DCS could be used alongside each other, especially as PHASM is planned to become a plugin manager that will allow users to write their own hooks. That would give them the most versatility I think.

And thank you Hayleia for the screenshot Wink
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 2
» All times are UTC - 5 Hours
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum