Captain Calc wrote:
When this code is run, it does not produce any output for the TI_PRGM_TYPE. So far the source of this bug has eluded me. Any thoughts?

I only skimmed the code, but it appears you're not resetting your VAT seek every time you change the type of var you're looking for.
You probably want the following line of code inside your outer-most for() loop:

void *detect_str = 0;
Yes, that was it! Thank you so much!
Great progress on this! I noticed you talked earlier about a “headless start” system, and I’d like to have VYSION support that. Will it just need to store the file name in Ans, and how will you differentiate between appvars and programs of the same name?

Looking forward to seeing more updates on this, so I have a few more suggestions as well (some a restatement of things I’ve already said):
-being able to press [enter] to select things
-differentiating between protected TI-Basic and ASM programs (check the start of the file for 0xef7b, and it’ll be ASM)
-customizable color schemes (?). If you’d be interested in making this program enhanced with VYSION later on as well (that functionality has yet to be announced), there will be an include file you can use to get these colors, to have the same appearance as the shell.
-load all programs and appvars before creating the menu in a dynamic array of structs that stores the name, type, and size of the program. It appears to me, based on this code that every loop, the files are redetected, which is needless overhead and results in the list scrolling more slowly towards its end. If you just load all this beforehand by detecting the files at program start, you’ll get consistent and faster speed regardless of the number of programs or the offset in the list.

That’s all I have right now, keep up the work on this great project!
Thanks for the feedback! Smile

Where did you notice the lack of [enter] support? I believe I carried all of dual button support over from the 1.2.2 version, but there could be a spot I missed. I don't think color customization is a high-priority issue right now because I want to keep the program from growing too much further, but I am considering adding additional configuration data to the Headless Start that will allow other programs to override the default color scheme. I like your idea of differentiating between the different kinds of protected programs and the pre-loading of the file data into dynamic structure arrays. The main menu cursor speed was always an Achilles' heel for HexaEdit.

I forgot to mention that this version also supports a theoretically infinite number of undos. The actual number is roughly 5000, but this should be ample unless you are writing an entire assembly program using hexcodes. Razz
Progress Update

I have finished basing the main menu backend on the dynamic file data arrays and am working on rewriting the functions that manage the Recent Files list. The Headless Start now supports a "color theme" override that allows the calling program to decide how the editor will look. The configuration data for the Headless Start is split up into four structures: a general header, a color theme override, a memory (RAM/ROM) editor configuration, and a file editor configuration. I will include a guide to the Headless Start API in the program download.

For the first release at least, HexaEdit will use an appvar to store the Headless Start data. I did some experimenting with the Ans variable but did not figure out how to store non-integer values (pointers, etc.) to it. Looking at the documentation for Ans, it looks like it can only store integer values, unless KryptonicDragon found some hacky way to make it hold other data. Wink

Unless something unusual occurs, I hope to release version 2.0.0 in the next couple of days! Smile
Version 2.0.0 Release

HexaEdit 2.0 is now available for download!

This version features a reworked GUI for both the main menu and editor, an upgraded file search that can search both appvars and programs, and a Headless Start API that allows the program to be run from other C or ASM programs.

Many thanks to all those who encouraged HexaEdit's development and helped improve it! Smile
Looks pretty good indeed, and the feature set is definitely nice - keep up the good work Smile
It reminds me of Command Post Plus and TICT's Tools Suite handle explorer (tthdex), both for the TI-68k series.
Thanks a lot! Smile

I am hoping to release a small update to HexaEdit tomorrow that will fix a bug in the Headless Start routine, make some minor tweaks to the input system, and fix some memory management issues in the main menu. I have at KryptonicDragon's request added a switch for the offset/address column on the left-hand side of the editor that allows the user to switch between offsets (calculated from the start of the file, RAM, etc.) or RAM/ROM addresses. The [mode] button toggles this switch.

HexaEdit 2.0.1 also offers a feature suggested by Lionel Debroux: a phrase finder for the editor. This function allows the user to search for a 16-character phrase in ASCII characters or an 8-character phrase in hexadecimal. This function is very fast for files, reasonable in RAM, and very slow in ROM (~90 seconds to find all occurances 2-character hexadecimal string in over 4 million bytes). Although it does remove the satisfaction to know that there are exactly 3 occurences of "\xab\xcd" in the entirety of ROM, I will probably cap the search range to around 300K bytes in order to provide a decent response time unless enough votes come in to make it an option. 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 2 of 2
» All times are GMT - 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