Looking really good! I hope to use this soon!
Keep up the good work!

After much hair-pulling and head banging, a beta/alpha of this program is out for testing.
As of now, only the File Options menu works... within which only Attribute Tracking/Updating works.

The objective of this test release is to verify that the system for recording/unrecording and updating File attributes works without error. Soon, I'll push an update that adds snapshot capabilities.
As with all beta software, there's risk of data loss so please take care to preserve files and, if possible, run on an emulator.

The most recent update can be found at: http://clrhome.org/blastav/downloads.php
Look under "Latest Beta, Executable Only" and click the download link for BLASTFIS.8xp.
Update Again
New Release: http://clrhome.org/blastav/downloads.php (Latest Beta, Executable Only (6 from top))

Snapshot functionality added to the beta release. You can access different aspects of this functionality from both the Program Options and the Snapshots menu.

From within Program Options, you can Create or Update a snapshot. This occurs here because the ability to do so is directly tied to the indexing of the files on the calculator.

From within the Snapshot menu, you can Restore or Delete a snapshot, as well as view the name, type, and size of the snapshot. This occurs here because this menu (and the functions it presents) are tied to the indexing of the snapshots database, not the indexing of the files on the calculator, and the snapshots database may contain things the file index does not. Just note that there is no output of running either a restore or delete (although you will know when a snapshot is deleted because all the stat fields on top zero out). Especially for restoring a snapshot, you won't know it happens but it does. I aim to have some form of confirmation for this soon.

I also added the ability to re-index the file list from anywhere by pressing the Stats key.
I decided to try this out and it's pretty neat! The indexing is very slow though, there needs to be a faster way to index (or just skip the index) all my 300+ files. It also froze on me. It did its index thing and I was scrolling through all the listed files, I got to file ICECOLOR and it just stopped scrolling and froze forcing me to RAM reset. This happened twice, both times at ICECOLOR.
Other than that this is a pretty cool project. I like your GUI and he snapshot feature could be quite useful for de-breaking my programs. Razz

First beta release of BLAST File Integrity Software is out.
Latest Beta > Executable Only.
Be sure to grab the malware definitions as well.
Latest Stable > Generated May 24, 2019

A few changes to this version:
The first time this program runs, you must endure the full-length indexing process. After that, you can hop into Settings and activate "Split Indexing Mode". This causes checksums not to be calculated during program load, and instead the first time you view a particular program from the File Options menu. Also, keep in mind, this setting also affects the re-indexing process, if you choose to press that key.

The [Stat] key re-indexes the file list and either repopulates (or zeros) all the fields.
Selecting the AV scan option "Scan File" for programs and appvars and the OS performs a basic malware strings check. Rather than show you on screen the opcode we are searching for, you are given the name of the malcode we are looking for. If one is found, the program will tell you the address it is found at.

This new version has the ability to scan the OS and checksum the OS, by selecting the requisite options in the System Scans menu. The OS's properties can also be saved to verify its integrity later.

Please report on any bugs, questions, suggestions in this topic. Also, please keep in mind, I am aware there are many ways to bypass this suite. I know. If someone makes a hooks lib, it could help me out with intercepting more things, but the problem with utilities of this nature is that data, and thus malware, can be hidden in so many ways it's virtually impossible to catch it all. This is in large part why I focused more in file integrity and snapshots in this release.
Ok guys... I need some help. First off.... I've been at the debugging of this thing from 9AM until about an hour ago and have this one nagging error that I can't seem to trace. Here is the steps to reproduce:

1) Launch the program. Do pretty much anything filewise or do nothing... (File Options)
2) Create a snapshot. You can do it once, or create more than one. You can do it for more than one file. This doesn't affect the bug.
3) Back out of the File Options menu, enter Snapshots.
4) Select one of the snapshots, try to Revert it. What will occur is hit or miss... Sometimes (usually the first time), it will write out a very large file of garbage. Usually it will do this once, and then trying to revert again (exact same routine) will do it properly and write out the correct file.

After trying all day to debug this and being unable to, I'm sharing the code for you guys to peruse and see if maybe you can figure out what's going on. PS: Yes, I know my code may be weird in places and unoptimized, most of which is due to my attempts to fix this bug, so please go easy on your critiques of how lousily written it is... lol


Here is how the snapshot feature works:
Creating a snapshot file saves the program's size, name, type, and the system time to a structure, snapshot_t. Much like MateoC's gfx_sprite_t type, it uses an arbitrary ->data member for easy reference to the data. The size field is the size of the program, not the whole snapshot. The size of the whole snapshot is sizeof(snapshot_t) - 1 + sizeof(datasection).

Snapshot files are index-named, starting from AVsh0000 to AVshFFFF. The first snapshot created creates the file, the second one for the same file appends to it, and so on. After a snapshot is deleted or created, and when the program loads, the program parses the file list for any variables with AVsh as the start of the name and saves the snapshot name, program name, and program type to a temporary buffer for easy reference. All of the functions then parse that buffer to get the correct file out.

Snapshots fixed. Turned out I was using ti_GetDataPtr() before opening the file I'm copying into, so the pointer becomes invalid before it is used. Thanks to MateoC for pointing that out.

Anyway, a beta release of the new version with better Snapshot capabilities, the ability to save multiple Snaps into a single file, and to revert to any one of them, is now live. For now, you are limited to saving 100 snapshot files.

You will need to do some housekeeping to delete the format of the old snapshot system before using the new one. Simply delete the AVSnapDB appvar, as well as any appvar names that start with "AVsh". The new format works differently. Attempting to revert/use the new snapshot feature without removing the old saves first can cause unpredictable results.

Latest Beta, Executable Only
It's a lot better now! Indexing is a heck of a lot faster! One thing you need to add is a loading animation so I know if the program is loading or if it's frozen.
I found one small graphics bug, when you're scanning the OS sometimes numbers appear (what do they represent?) that are too long and wrap around to the other side of the screen.

Other than that I didn't find any bugs, keep up the great progress!
That GUI issue is due to the fact that you are using an outdated version of the virus definitions file. The later versions are limited to less than 12 characters of a "Name" for the definition. You might want to make sure your versions of the program itself and the definitions are the latest.

Also I added an hourglass icon to the OS checksum waiting. Might also make it rotate as it goes.
If no other bug reports in a day or two, I'll advance this to stable and upload it to archives.

Considering the lack of bug reports except the one issue TheLastMillennial reported due to program/definitions version mismatch I've assumed the program is mostly bug free and gone ahead and posted it to the Archives. Feel free to mess around with it, post a review, etc.

Alt Download: http://clrhome.org/blastav/downloads.php
Documentation: http://clrhome.org/blastav/downloads/BlastFIS_UserGuide.pdf

For those just joining this thread who use(d) the older BLASTCSS program, heres What's New:

1) More control over what file types we look at
2) More control over what files are tracked and scanned
3) Version-control style file snapshotting, with reversion ability
4) Simpler malware scanning, GUI has fun "names" for malware, not actual opcode hex.

To contribute a malware definition (or view the existing ones), please head over to:
You will need to have a ClrHome account at present in order to post. If you would rather not sign up, you can post a definition here and I will add it.
(Started on SAX chat widget)

Here are the steps I went through:

1. Opened File Explorer and TI Connect CE
2. Plugged in calculator and opened Calculator Explorer
3. Selected BLASTFIS.8xp and dropped it into the file list

At this point an error message pops up with a warning that the file is invalid, and the file transfer fails.
Can anyone else replicate this issue? I need to know if it's occuring to more than one person, so we know if the issue is with his computer/connection or the file format/download.
Captain Calc, did you extract the file before sending it? Wink
Yes, I downloaded both versions and extracted them both with winRAR. I have extracted other calculator programs I've downloaded with it and haven't had any problems with those.

I am strongly suspecting that my calculator is the problem.
You uploaded a 980 byte 8xp. Maybe you should test your own programs Wink
Well, it is a compressed program :p
I’ll double check things when I get home later. Always a chance I screwed something up

Indeed somehow the program got corrupted, either during compression, zipping, or uploading. It does, however, seem very strange that all copies of the program would get corrupted in the same way, so it's more likely I did something wrong.
Figured this out too. The "program" file I compressed into the zip turned out to be an alias.

That aside, I have re-compiled the program from source and will be in short order posting updates to cemetech, omni, CW, and ClrHome. For now, @Captain Calc, there is a good download at http://clrhome.org/blastav/downloads.php. It's at "Latest Stable, Executable Only".
Thanks, ACagliano!

I just downloaded it, and everything is working properly.

Created a new YouTube channel that I will use for explainer videos and generated TI-Trek videos.
Uploaded to this channel an explainer video on BlastFIS: https://youtu.be/GNddA9x7QHo
Feel free to watch the video if you are interested in using this program and would rather not read 6 pages of documentation.

Also, decided to undertake 2 small changes to the program in the near future.
1) Cap snapshots based on memory usage, not number of snapshotted files.
2) Remove "About" button from program, since landing screen is basically an about page

A minor update to this program has just been released. Doesn't really add anything big.
1) The About menu option has been removed. The landing screen IS an about screen.
2) The Snapshot limitation-by-file has been removed. The limitation is now directly tied to memory usage. You will be allowed to continue to create snapshots until the configured cap on snapshot memory usage is hit, then, snapshot creation will fail. This means you *can* go over the memory setting, but once you do, you cannot create another snapshot.

Update: http://clrhome.org/blastav/downloads.php [Latest Beta, Executable Only]
-- Please test this beta release.
-- You may want to reset the program's save. Delete AVSett appvar. This will remove that pesky 5 at the end of the snapshot memory cap.
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 4 of 5
» 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