ReSource ======== A Software Review ================= Dave Edwards ============ Introduction ------------ Having written some nice code, the odd DOC file or two (dozen...), & some nice letters in which I had some fun ranting to the populace at large, I decided to ring the changes and supply a software review. The program I shall review is called ReSource. This program falls in- to the 'utility' category, but is far more than a mere utility. Its features are so extensive that it almost becomes productivity software for coders, so marvellous are its capabilities. What Does It Do? ---------------- ReSource started life as a disassembler, to allow coders to hack ROM code and executable files apart, but grew and grew...until it became a dream piece of software for coders. Firstly, it allows the ROM to be disassembled, which helps DOC file writers and terminal junkies alike. Secondly, it allows executable Amiga code files to be disassembled. Thirdly, it allows the disassembly to be sent to a text file. Fourthly, it provides INTELLIGENT LABELLING of the resultant dis- assembly. This labelling feature is TOTALLY under the user's control. You can select which fields of a 68000 instruction to label, where to embed custom labels of your own for branches etc., and furthermore, the system KNOWS about the various libraries and data structures too-if you wish to label a piece of code such as: move.l #$104,d0 move.l #$10001,d1 move.l 4,a6 jsr -$c6(a6) move.l d0,12(a5) then by simply selecting the menu items pertinent to Exec, you end up with: move.l #$104,d0 move.l #MEMF_PUBLIC+MEMF_CLEAR,d1 move.l ExecBase,a6 jsr AllocMem(a6) move.l d0,12(a5) The same applies to ALL the libraries, including the WorkBench 2.0 libraries, and to many of the data structures used. So if you know that a given piece of code refers to an Intuition window, as in: move.l $32(a0),d0 then you select the above line of code to work on, and then select the menu item pertinent to Window structures, to yield: move.l wd_RastPort(a0),d0 Needless to say, this makes understanding disassemblies far easier than via a MonAm trace, for example. Online Help ----------- ReSource contains an online help feature built into the menus. When help is selected, the menu selection immediately following selection of help results in various help texts appearing on screen. Help is also available by hitting the HELP key on the keyboard- a nice touch this (why don't more pro- grams use this?). Furthermore, extra levels of help are available once the initial help is selected. The levels of help available are dependent upon the feature sel- ected, and the more complex features tend to have large amounts of extra help available. Labelling Features ------------------ As well as containing built-in knowledge about system libraries and data structures, with the relevant labels all accessible via Intuition menus, there exists a custom labelling feature. If you encounter a piece of code of the form: tst.l $CFE002 bne.s $FE1002 during a disassembly, then you have the option of labelling the appropriate operands using the "add custom label" feature. This applies to branch labels too. ReSource will generate automatically a set of labels to which branch instructions refer, and you have the option of editing those labels to suit your own preferences (or to enhance readability). When branch labels are ed- ited, all references to that edited label are automatically updated too. And to make life even easier, it is not only possible to edit labels attached to absolute addresses, but to edit those attached to constructions of the form: offset(A6) whether those labels have been created by ReSource or created by user choice. Other Features -------------- Not satisfied with this, ReSource memorises your label choices, and when you produce an ASCII text file, it provides a header at the top of the text file containing all the label definitions needed to make the resultant text file assemble without any missing label errors. Better still, three dif- ferent assemblers are supported, the MetaComCo assembler format being closest to the format used by DevPac. Also, it is possible to split code and data within a section by sel- ecting the type of disassembly required (choices supported are code, bytes, words, longwords and ASCII text). The selection takes effect until you change the selection further on. ReSource memorises all of your selections and when you save an incomplete project (using the .RS file format) all of these and your last cursor position prior to the save are memorised. So when you resume work on your current project, hey presto! your last cursor position is remem- bered. All manner of searches through the project are supported, the options being normal, pattern, label and symbol search, and searches can be performed in both directions. The line to be operated upon (when adding new labels etc) can be selected either relative to the current line, relative to a given la- bel or symbol or in absolute terms (including by reference to the actual ad- dress offset from the start of the program being disassembled). How Good Is It? --------------- In a word, this program is EXCELLENT. If you are a devoted coder, and have a desire to dissect the Amiga's internals, then this program is a MUST. Similarly, if you are intent on disassembling CLI commands, delving into the Global Vector Table or disassembling the File System, then this program also should be close to the top of your shopping list. As a coder's tool, it is friendly, quick, powerful and easy to begin using from scratch. For the skilled and advanced user, there exists a wealth of features that makes program disassembly almost laughably easy. Even begin- ners will find this program relatively simple to get to grips with, and will find this tool easier to use than many other coder's tools (except of course for the tools supplied by HiSoft, but HiSoft's reputation for producing high- class development software is practically unassailable!). Beginners may not normally consider such a tool as being suitable to add to their software collections, preferring instead to obtain software that is perceived to be more 'manageable' until their experience grows. I would be among the first to suggest that this program should still be on the shopping list even of novice coders, since it is possible to pick and choose the fea- tures that you wish to use as and when you learn how to use them. Would I Recommend It? --------------------- YES. Ratings ------- Ease of use : 8/10 Features : 9/10 Documentation : 6/10 Overall : 8/10 Where Can I Get It? ------------------- For those who just HAVE to have a copy of this program, then it can be obtained from the following: The Puzzle Factory PO BOX 986 Veneta Oregon 97487 USA Tel: 010 01 503 935 3709 Enquire about whatever version is the latest available, what extra features are available on the latest version, and what kind of costs, terms and con- ditions are applicable.