The main document files on this disk are formatted for printing on normal- sized (66 lines per page) fanfold paper. To print, from a CLI, type: type > prt: Introduction.doc type > prt: Reference.doc ********************************************************************** To make the best use of the menus, run "FastFonts" by MicroSmiths, or "Blitzfonts" by Hayes Haugen. If you don't, the menus will be very sluggish to scan through, because of the large number of sub-menu items. ********************************************************************** The file "arp.library" must be available for ReSource to run. ReSource will look for "libs:arp.library" OR "ReSource:libs/arp.library". This allows you to run ReSource after booting on a disk that does NOT have arp.library in its' LIBS: directory. ********************************************************************** In an effort to minimize piracy, each copy of ReSource sold is individually assembled and linked, making it easy to tell who the original purchaser was, should it be pirated. Should you find any commercial copies of ReSource "floating around", send a copy to the author: Glen McDiarmid 28 Marginson Street, Ipswich, Queensland 5405 AUSTRALIA (07) 812-2963 If you are the first to send in that particular copy of ReSource, you will recieve a complementary copy of my next software release. In any case, I will send back to you, the latest version of ReSource. This offer applies only to original purchasers of ReSource. ********************************************************************** Bug fixes/Late changes: V3.01 (06 April 1989): The new "Origin" functions were not functioning correctly. Fixed. Some functions which should have triggered a screen update were not doing so. Fixed. Two new symbol bases were added; "Janus library" and "Rexxsyslib". A user reported that when the "All" option for "blank lines" was selected, "JSR" and "BSR" lines should have been followed with a blank line. These functions now work slightly differently in the menus; you may select "Unconditional", "Conditional", or "Calls". You may select more than one, in this case a blank line will appear after any line which falls into any of the selected categories. Lines will never be followed by more than one blank line, regardless of how many selected categories it falls into. ********************************************************************** V3.00 (01 April 1989): This is the third upgrade to ReSource. New features include: PROJECT/O'lay binary image: This function prompts you for a filename. ReSource will attempt to open the file, and read the contents, overlaying the current file. This is NOT the same as opening a file normally, as all labels, symbols, comments, data types, etc., stay as they are. Only the actual contents of the executable itself are overwritten. For example, you may wish to pass on a ".RS" file to someone, but because the program you have disassembled is copyrighted, you cannot legally distribute the normal .RS file, as it contains the executable. By using this function, and inputting a filename of "*" (asterisk), ReSource will completely clear the executable within the current file. You may then save to a ".RS" file, which may then be distributed, void of the executable. If another person has previously purchased the program that you have disassembled, he/she may load it into ReSource, and use "SAVE/Save binary image/All", to save the executable to a file. He/she then loads the special .RS file which you created. Next, he/ she then uses "PROJECT/O'lay binary image", supplying as a filename, the name of the file previously saved with the "SAVE/Save binary image/All" function. This effectively puts the executable back into the .RS file. The other save functions may then be used, to save to a .asm file, for example. Several new symbols bases are now available, including: Arexx library (previously ghosted) Color entry Devinfo Expansion int PrtInfo RomBoot Base STRINGS/Accumulator/: Previously, if any maths functions were used, the accumulator would always show the results in hex. You may now choose between hex, decimal, or binary. SPECIAL FUNCTIONS/Origin/: There is sometimes a requirement to disassemble a block of code, as if it is loaded to some particular area of memory, other than that to which it is now loaded. For example, if you disassemble Kickstart, and save the binary image, then later load this into ReSource, it will not disassemble properly unless ReSource "thinks" that it's origin is $FC0000. To do this, load the file, then use the "Specify" option. Both the "Specify" and "Set" sets the origin to an absolute address, the "Set" option is the same as "Specify", except it assumes that the current loading address is to be used. These options are really only useful if the file is loaded as a binary image, or from track, or memory. If loaded from an executable, the reloc32 information will ensure that proper relocation is done where needed. It is because no reloc32 information is available when loading other files, that this function is required. To remove the origin, so that it uses whatever actual address the file is loaded to, use the "Clear" option. SPECIAL FUNCTIONS/Reloc32/: Use these functions to specifically delocate or relocate the current file. Is only useful if file was loaded from an executable, where reloc32 information is present. Be aware that relocation is performed immediately after the "PROJECT/O'lay binary image" function, when a file is actually loaded. OPTIONS 2/Leading zeroes/: Use these options to specify whether or not you wish the leading zeroes on hex values to be shown. OPTIONS 2/Assembler/: Use these options to specify which assembler the output should be suitable for. Metacomco output currently works with CAPE as well, although smaller files will result with CAPE output. Currently, "dc.b" will be shown as "db", "dc.w" is shown as "dw", and "dc.l" is shown as "dl", if CAPE is chosen. The program "ShowKeys" was updated, to recognize the new functions. Also, it now looks for ctrl-c. ********************************************************************** V2.42 (14 March 89): Several symbols in "rawkey codes" symbol had incorrect values. These were corrected. Whenever a "load file" was opened that contained labels of 16 characters long, ReSource would lock up. Fixed. There is a new distributor for ReSource in the USA. Contact: The Puzzle Factory P.O. Box 986 Veneta, OR 97487 USA (503) 935-3709 V2.41 (21 Feb 89): CAPE macro assembler release 2.00 now used to assemble ReSource. When a DIVS, DIVU, MULS or MULU opcode had an immediate source operand greater than $FF, only the lower byte value would be shown. For example, " DIVS #$3E8,D0" was shown as " DIVS #$E8,D0". Fixed. Code is now disassembled around 30% faster than in previous versions. A bug which sometimes caused the "calculate .asm size" function to crash was reported to me. I also received an .RS file which I was able to use to track down the bug. V2.38: (1 Feb 89): Several bugs were introduced in V2.37 when the CAPE assembler was used. Until the problems are sorted out, Metacomco will be used. This version should be identical to V2.36. V2.37 (11 Jan 88): Used CAPE assembler to assemble ReSource. (Metacomco was used previously). No actual changes to source for this release. V2.36 (24 Nov 88): PC-Relative addressing modes now fully supported. e.g.: MOVE.L MyLabel(PC),D0 ... rest of code MyLabel: dc.l 0 V2.35 (17 Nov 88): Blank lines were not shown properly. Fixed. V2.34 (16 Nov 88): In various places, ReSource was putting extra spaces in the output .asm file, notable on blank lines, and after the "RTS" instruction. This has been eliminated. The "MOVEQ.L" instruction was changed to "MOVEQ", also to decrease the size of the .asm file. Where a JSR uses a PC-relative address, this shows now as "JSR Label(PC)". The same applies to the JMP instruction. Flip case for code was not working properly, this was fixed. Local labels are now supported. When ReSource decided that you had were trying to create a duplicate label, you had to "click" in the resulting requester, before typing in the new label name. Fixed. Offset -6 in the potgo.device was incorrect, it now properly shows "_LVOAllocBits". Single quotes are now shown properly in ASCII strings, as two single quotes. V2.33 (23 Nov 88): When the last occurence of a particular symbol is removed, the entry in the equate/ xref table is now also removed. When creating a symbol, unless a macro is being either created or executed, the symbol creation will fail if it is already defined as a label. This only applies to manually defined symbols. There is still no checks to make sure that you do not define a symbol twice, to two different values. In this case, the entry in the equate table will equate the symbol to the first replacement value. This will be fixed in a later version. For now, just be aware of the potential problem. V2.28 (24 Oct 88): When allocating a larger memory block for list nodes, the size was calculated by doubling the original block size. To make better use of (limited) memory, the new block size is now 1.5 times the size of the original. When the multiply function was used, it would sometimes cause a 'macro fail' when it shouldn't have. Fixed. V2.27 (16 Oct 88): Some forms of references were not being recognized when disassembling directly from memory, or binary files. Fixed. V2.26 (15 Oct 88): When a file was loaded with label (debug symbols) that refered to locations beyond the end of the file, ReSource would crash. Now, ReSource will not use labels unless they are refer to locations within the current file. V2.25 (10 Oct 88): "SYMBOLS 2/H-I/Hunk types" created incorrect symbols for some values. Fixed. A bug introduced in V2.24 which resulted in some bad code being produced was fixed. E.G.: OR.W D0,-$0004(A5),D0 V2.24 (02 Oct 88): "SPECIAL FUNCTIONS/Convert xx(A4)'s" changed so that relative Effective Addressing is still used, but instead of using an absolute offset, a relative offset is achieved. I.E: MOVE.L -$541E(A4),D0 .. becomes ... MOVE.L lbC000342-DT(A4),D0 .. instead of ... MOVE.L lbC000342,D0 This will require you to define the label "DT". Normally, it will be placed where the A4 register points to in the file. However, sometimes A4 will point to some place beyond the end of the file, you can still equate "DT" to that address: DT equ START+$19042 As long as "DT" is within 32K of all labels that require relative addressing from A4, you can place DT anywhere you want. For programs smaller than 64K, you could place "DT" in the middle of the file, and all parts of the file would be able to be referenced from an offset from A4, both data AND code, providing that they are in the same section as "DT". The advantage of using relative addressing is mostly in program size, however some speed increase is likely also. Each time you use relative addressing instead of absolute addressing, you will save at least SIX bytes in program size, but only two bytes for the loaded program size. When this function was used previously, it usually resulted in a file that was much larger than the original. Now, it should be approximately the same size as the original, when you reassemble the source code that you create. When "SAVE/Save .asm" was used, and the destination device became full before all of the file was saved, if the user hit "Cancel" on the system requester, the file was not properly deleted. Fixed. To help with programs that use A-line and F-line instructions, these will be shown as a macro, named "AFLINE", the only operand being the word value. Where this has been detected in the file, and "SAVE/Symbol table" is active, the appropriate macro will be defined at the start of the output file: AFLINE macro dc.w \1 endm The "EXG" instruction was displaying its operands in the reverse order. Fixed. V2.23 (22 Sep 88): "CURSOR/Absolute/Fwd reference" and "CURSOR/Absolute/Second fwd reference" would not accept references to the first byte in any file. Fixed. "SYMBOLS 2/A-B/Breakbits" now shows multiple symbols correctly. V2.22 (22 Sep 88): When extremely long lines of ASCII were displayed, the output buffer sometimes overflowed. The maximum line length for ascii lines is now 256 characters. The output buffer size was increase from 4K to 8K, so that displays with many long ASCII lines will be displayed fully. When a program with an extremely high number of symbols was saved as a .asm file, the output buffer would overflow, usually resulting in a GURU. The equates table is now saved after each line. It was not mentioned in the main documentation that .RS files saved under V2.XX cannot be loaded by previous versions of ReSource. However, ALL .RS files created by V2.XX and previous, can be loaded by V2.XX. .RS files saved under V2.XX are compressed before saving, resulting in much smaller .RS files. V2.21 (20 Sep 88): If a full-line comment starts with a semicolon, it will be shown WITHOUT a semicolon. When this happened, it was being shown one character too long. Fixed. If the OpenLibrary call for "arp.library" fails, ReSource now tries to open "ReSource:libs/arp.library" instead. Thanks Charlie!! When "SYMBOLS 1/Libraries/Dos" was used for offset -$A2, "_LVODirPacket" was given, instead of "_LVOGetPacket". Fixed. "ShowKeys" program added to distribution disk. V2.20 (18 Sep 88): Even though "DISPLAY/Decimal conversion/None" may have been selected, zeroes were still being shown in decimal ("0" instead of "$00"). Fixed. V2.19 (15 Sep 88): If "LABELS/Create single/Label" is used inside a macro, the check for duplicate labels is no longer made. Outside of macros, the user will be asked again for a label, until either a unique label is given, or the user selects "cancel". Inside macros, define the accumulator string, and use "Put label" to ensure unique labels are used.