Once I started using version 1.04 of Mod_Dis, it soon became apparent to me that it was seriously flawed. Firstly, there were several bugs, one of which was pretty major, namely that the program didn't save the length of a padded string to the script file, so any script file which referred to a padded string wouldn't work. Of the 23 sample script files supplied with version 1.04, 6 wouldn't work properly.
A more serious problem, from my point of view, was that the nature of the script files meant that whenever I changed the program the script files often became out of date, because the path taken by the program in analysing the module would change, so all the responses would be wrong. To get around this, I have totally revised the script file format and simplified its operation from the users point of view. There is no longer any need to change the variables readscript% and writescript% in the program. Now the program always tries to read a script file, creating one if it does not exist. The new script files contain the offset as well as the response, and are searched sequentially from the start every time the program gets stuck, so the order in which the responses are stored is unimportant - if it is there the program will find it. If the program can't find a response in the script file it prompts the user for help, and then adds this response to the script file before proceeding.
A useful consequence of this is that if an error happens during execution, say, because the user inputs a mistake, you can edit the script file using !Edit or Twin to remove the offending response. Then simply running the program again will read the script file up to this point and then revert to asking the user for help again. It is quite safe to just press Escape and then type 'RUN' - the program will take you back to the point where you were.
The disadvantage of this change is that the script files from version 1.04 are now out-of-date. Also, I feel that the amount of information in the new script file about a module (which is itself copyright) is so high that they can no longer safely be distributed as PD files, so there are no script files accompanying this version, nor will there be with any future versions.
The other important changes are:-
BICS PC,R14,#mask is now recognised as an end-of-code (like MOV PC,R14)
Some modules contain help code instead of a help string. Mod_Dis now recognises this and acts accordingly
There is now some support for out-of-module branches, as used by RiscOS, UtilityModule and FileSwitch. These aren't translated correctly, because I ran out of time, but they don't crash the program any more.
You can now specify Acorn-type compacted strings as type -4. These strings were always interpreted correctly when they cropped up in help strings, etc., but there was no way for the user to specify them in preference to a plain zero-terminated string.
It can now cope with modules with no title string, such as RiscOs, a 'hidden' module which comes before UtilityModule.