home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gold Fish 3
/
goldfish_volume_3.bin
/
files
/
dev
/
debug
/
disectdemo
/
document
/
history.doc
< prev
next >
Wrap
Text File
|
1995-07-12
|
15KB
|
334 lines
* ------------------------------------------------------------------------- *
Disect - © DMA 1994-5 24.11.94
===================== ========
V1.0: 13 Mar-Oct 94 At times, I thought I'd never get there...
-------------------
V1.1: 17.11.94-24.11.94 Well, from my rather affected memory:
-----------------------
1) No longer crashes if disassembly window at hardware registers
2) No longer need to define hundreds of copper addresses one
at a time (!)
3) DataStrings allow 'X' in base string
4) Will load executables containing LINE debug/HCLN hunks
V1.2: 25.11.94-29.11.94 Got fed up playing Frontier, so...
-----------------------
1) Gave screen a proper menu bar, and menus. ASL menus OK now.
2) Screen is now WB2+, ASL requester is (at last) blue!
3) Disect aware of 'gadtools.library' base address
4) Main window is now WFLG_BACKDROP, so now cannot lose ASL
requester window behind it! I remember the day I
discovered that one...
5) Key '+' swaps both disassembly windows
6) Symbol Window: LMB on a selected symbol, moves (upper)
disassembly window to address of (program) symbol
7) Up & Down arrow gadgets in disassembly windows
V1.3: 30.11.94-7.12.94
----------------------
1) A bug which made Process crash/caused system corruption
on Process termination creeped into V1.1. Dead now...
2) INCBIN Request. Thanks to Mark M for that idea
3) Symbol Window: if press a letter key (with/without) SHIFT key,
or '.' key, and if symbols are sorted alphabetically,
now moves window to first symbol which begins with
that character
4) Improved algorithms for ensuring disassembly windows align
themselves to defined program addresses
5) Improved handling of global/local program symbol definition
and reference
6) Added an 'about' message
7) When define global program symbol, opens request if causes
local program symbols to be corrupted
8) RMB on a local in program symbol area moves disassembly window
the local's global symbol
V1.4: 7.12.94-11.12.94
----------------------
1) When disassemble to file, will concatenate successive DC.X
statements to produce (much fewer) lines of source
2) RMB on instruction mnemonic moves PC to instruction
3) Can display addresses normally, or as hunk start offsets
4) Allows hunk offsets in expressions: "[0:64]"
5) Shift key WILL move memory window fast
6) Letters in hex now follow selected case
7) Up/down arrow gadgets in windows repeat if held down
8) Alarm sound when finds search data
V1.5: 18.12.94
--------------
1) RMB on displacement (eg: 'dd(Ax)') moves disass window to EA
2) WB requesters if cannot get resources
V1.6: 9.1.95-01.02.95
---------------------
1) It sometimes missed arrow gadget messages, only responding
to them when another IDCMP message occurred which
created a signal bit to the message port. This
happened if LMB > 4 times quickly on arrow gadgets
2) System DataStrings: now contain 'X' for address pointers, and
is now aware of address pointers which point to other
system structures
3) System DataStrings: automatic line commenting, and automatic
program symbol name definition
4) Allows definition of user address same as previous defined
5) Allows a base offset address to be defined
6) LMB on SEA/DEA text to lock register zoom
7) Auto blank lines preference
8) SS 'Prev' gadget allows offsets from locals if same global
9) Dummy symbol selections can be used as line comment texts
10) Symbol Window now contains a scroller gadget
11) Disect aware of 'mathffp.library' base address
12) Added 'PROCP' reserved symbol name
13) Added Process Grabber, but only tested on A500+ so far
14) Request windows which take an address range: can enter '=',
'+X', and ',X' into end address string gadgets
15) Was unable to read any DSCT data file if the file contained
no user address structures
16) Could not detect characters between "9" and "A" as invalid in
hex numbers input by user
17) Added LMB function in Display Breakpoints request window
18) RMB in memory dump will define base offset address
19) No longer scans executable files to determine project memory
sizes, now uses seg list (the things you learn once
you get the RKMs...)
20) Data areas defined using system DataStrings now get DF'd as
macros
21) During DF, if a program symbol name length exceeds one tab
size, then the remainder of the source line will be
output using a new line
22) Increased executable file hunk limit
V1.7: 2.2.95-20.3.95
--------------------
1) When RMB on program address or displacement, right ALT will
move memory window to the address
2) Memory dump now contains a +/- cycle gadget
3) When filling memory: eg, if filling LONGs, but address range
was 31 bytes, Disect would actually write 32 bytes
(ie: 8 complete LONGs); also changed FORBID/CLEAR
CACHE/PERMIT method (once per byte, instead of once
per address range, since very large fills may FORBID
for too long); also did this for copy memory
4) Search memory also gives alarm sound when search ends (data
not found); source/ASCII searches now match any
number of spaces or tabs
5) During DF, if a program address was automatically replaced
with a (program) symbol (creating an instruction
address), the original address would still be logged
as an missing undefined-reference address; by adding
a single instruction, this was solved
6) Added Process Menu 'Breakpoint At Active Process PC' function,
but I think the world may not like this too much...
7) A new, improved Symbol Selection window...
8) Cute little arrow gadgets in main window to move disassembly
windows left and right
9) Disect refused to disassemble movec control registers (unless
the upper 4 bits of the opcode extension word were 0)
10) Disect hung when I ungrabbed what I had previously considered
to be a safe Process to do this to... it was a very
well hidden bug (since I did not realise that by
sending a Signal to a Wait()ing Process, a task-
switch might/will occur)
11) Added Process memory allocations monitor, & unfreed memory
list when Process terminates
12) History buffer no longer limited to only four entries (!)
13) ASL window size and coords now saved as Preferences
14) Can now extract symbols from .gs files
15) Binary files: allows load to a preferred address
16) Disect auto-replaces CUSTOM/CIA addresses with symbols
17) Another bug: if an address register contained a library base
address, and was displayed in register window as,
eg: 'BASEDOS', then the content of the address would
not be displayed
18) Mark M pointed out to me that 'CUSTOM' is defined in
'intuition/preferences.i', but not as $DFF000,
so had to rename the same symbol (held within
Disect executable file) to 'CUSTOM_BASE'
19) Allows '.x' in expressions for FFP values
20) Fill & Copy Memory: no longer FORBID/CLEAR CACHE/PERMIT
21) LMB on address digits in disass window: if right ALT pressed
moves memory window to address (instead of defining
a breakpoint)
22) Had a bit of screen corruption (register/memory window) if
defined a base offset which caused large offsets to
be displayed (eg: '[-$12345678]', which would not
fit into 10-chars available for it)
23) Now allows definition of key macros... it's simple, but
highly effective, and I'll sleep with a grin on
my face tonight! (I will get around to allowing
macros to be loaded/saved... eventually)
24) Previously, could not replace references to seglists with
program symbols (eg: 'move.l main-4,a0'), so Disect
will now do this automatically
25) Grabbing a Process would crash if it's pr_WindowPtr was -1
26) Now replaces 'jsr dd(a6)' with relevant '_LVO' symbols for
following libraries: Exec, DOS, Gfx, Int, ASL,
GadTools, MathFFP
27) Can no longer define breakpoints outside project memory range
28) MultiBin files load and save, and program 'AllocMultiBin'
29) Request window gadgets now display '_' characters beneath
letters equivalent to keyboard controls
30) Now allows definition of a Process's variables memory area
(either within Process, or allocated memory), and
can define user constant symbols as displacements
within this memory (eg: dd(ax)), so that Disect can
auto-replace any displacements with relevant constant
symbol
31) Disect will now display content of addresses (eg: register
window) as program symbols (no longer displays only
an address as a program symbol)
32) Found a very obscure bug: if a 'JSR _LVOAllocMem' was ('E')
executed (buffered), and if this memory was not freed
then when Process terminated, unfreed memory was not
listed as 'SELF' allocated
33) Now allows binary files to be inserted into loaded project
34) With much DSCT data (especially on a 500+!), things tended
to get slow, so added something to speed things up
(although it still seems too slow at times...)
35) Auto Trace mode!!
36) Hardware monitor (not finished?!)
V1.8: 21.3.95 ... 10.7.95
-------------------------
1) Hardware monitor now finished
2) Can now end a key-macro definition with a request window open
3) Key-macros now record menu messages
4) Can save INCBIN areas as IFF ILBMs
5) Added audio sample player
6) Can manually open trackdisk device (for when if have saved
a pre-loaded boot block as a multibin file)
7) Disect will now auto-replace ARID references to chip & CIA
registers when PC at, eg: ...,dmacon(a4)
8) Can now SET or EQU constant symbols manually
9) Disect now shows possible Process variables memory references
using a 'V' marker, and LMB on this will auto-replace
10) Instant definition of BYTE/WORD/LONG Data addresses via LMB
11) Defining data addresses until 'Next Symbol' will now define
data area size explicitly, instead of leaving it 'variable'
12) Can now save boot blocks
13) DF now warns of references to addresses in project mem but
outside disassemble area(s)
14) DF areas now displayed as (blue?) background in disassembly
window
15) DF address range lists can now be loaded and saved
16) Can now 'Run Copper List'
17) Will now remap executable file's Process [hunk:offset]
to a corresponding [offset] into the executable
file on disk (for when executable is loaded as a
binary file...)
18) Will now search user addresses for use of any system/user
symbol
19) MultiBin files now allow Process status to be saved. Is only
useful for games (ie: does not use OS, probably kills
it straight away) since is ?impossible? to save a
Process which has eg: opened a screen & 4 windows
and half a dozen third-party libraries, set up
interrupt servers, ... etc AND restore EVERYTHING
when you load it back up later
20) A MultiBin 'file' can consist of more than one file (eg:
a 1.5 meg 'file' split across two disks)
21) Two more prefs: maximum MultiBin file size & '.b'/'.s' for
branch instructions
22) Bug fixed: did not select copjmp1 or 2 when execute a write
to either register
23) Hardware monitor now does (certain) blitter registers
24) Finally removed the (redundant) project request window
25) Can now also define data areas until next -1 byte/word/long
26) Finally fixed the annoying ASL for Mark M
27) Can load/save individual DataStrings
28) DF: user constant EQUs now grouped according to prefix text
(ie: any text before a '_' character), and listed
in increasing numeric order
29) And system constant EQUs are also
30) Found a bug during DF with spaces (not tabs), which caused
corrupt source files when disassembling system
structure macros
31) Bug: sometimes, when LMB on an #immediate number which was
in project memory range, its value was ignored,
resulting in only allowing a symbol selection
for a value of zero (this only occurred when #imm
was specifically immediate data in an instruction,
eg: addi.l #x, as opposed to, say, add.l <EA>,
where <EA> was immediate data
32) Added maximum DF source file size pref
33) Crashed when traced/executed, eg: move.l d0,$4.w, even with
hardware monitor enabled; is ok now
34) Hardware monitor now tracks bus error vector instead of odd
address vector, since Disect uses odd vec during HWM
35) Previously, did not auto-replace, eg: ...,0(a0), to become
...,ciapra(a0), because EA mode was ARI (not ARID),
where '0' was auto done by Disect
36) Now replaces ARIDI references to hardware registers (used to
be only ARID references)
37) Will now auto replace the bit number of a btst/bset/bclr/bchg
when DEA is CIAA_PRA, CIAB_PRA, or CIAB_PRB (very
useful when dissecting disk loaders...)
38) Added stuff to allow a Process to safely alter a7 (hardware
menu item 'Stack Top'), and checks if attempt to
execute or auto-trace a move to a7 when the address
is not in project memory
39) SysSymbol data is now compressed; this saved about 40-50k of
disk space
40) Bug fixed: if executed/traced instruction with (conditional)
breakpoint at PC, did not suspend at next instruction,
only did so when expression was TRUE (it was a loop,
fortunately!)
41) Ditto: sometimes got an $80000003 when LMB on the operand of
a DC.X which had been defined using a system Data-
String
42) Previously, GrabProcess would check the instruction before
the rts address from Exec.Wait()/WaitPort(), to
ensure it was a jsr _LVO(a6) - this is not always
the case, and resulted in not being able to grab
certain Processes, so I removed this check
43) DC.L operands: if have matching program symbol, now displays
'P' marker, and can LMB on this for auto-replace
44) Auto-LVOs now also done for jmp dd(a6) as well as jsr dd(a6)
45) Added Task & Process system DataStrings (I wanted them to
dissect ExecBase TaskWait list, to see why I couldn't
grab SimCity! see #42 above!)
46) Further to #38, I forgot to allow a7 to be changed by an
instruction so that the new address is not in project
memory, but is in stack memory (!). Then, spent two
days allowing for every instruction which would alter
a7. By method, this worked by checking if the DEA is
a7, but, finally, discovered: exg a7,a0 (a7 is SEA!).
What fun this all was (?)
47) In memory window (small one in main screen), if any memory
address is within the Process's Process structure,
Disect now displays, eg: TC_SPLOWER, or pr_SegList
instead of the address (is preference-able: 'Symbolic
Address Display')
48) Previously, if I defined a data area using, for example, an
LH DataString, but then realised it was an LN, it
would not (always) replace the line comments, and it
would never replace the program symbol at data area
start (which messed up the macros during DF!)
49) During auto-trace, a JMP to a ROM (or external) function
would be traced even if you didn`t want it to be,
since Disect was only looking for JSR (or BSR!)
to ROM/etc
50) Another One! With a grabbed Process, auto-trace mode did
not detect a write to stack memory as being a
permitted DEA
51) Disect now checks to ensure that TRACE and ILLEGAL vectors
are intact before executing anything/anyhow
52) Can now (at last!) display Process's allocated memory
(if a memory monitor has been installed)
53) Current project name now displayed in screen title
54) Disect now allows 'address constant' symbols; defined via
CTRL key & LMB on 'd0', etc, in register window
* ------------------------------------------------------------------------- *