palmdeMON
v0.24b 
15/04/2001
carpathia_uk@mail.com

---------------------------------
 What is palmdeMON ?
---------------------------------

  A small tool I have written to allow Palm PRC's to be disassembled. Later 
  releases will incorporate a debugger (still a little too buggy at the moment), 
  and a resource editor.

  I started palmdeMON about a year ago, but due to other projects and real 
  life work, its only the past week Ive really had time to get it into a semi 
  releaseable state. Sadly theres no debugger to play with yet, but this will be 
  forthcoming once im happy the disassembler is slick and useful. 
  What im looking for at the moment, is feedback on its usability, features youd 
  like to see next. I have a lot of ideas for it but I always wanna hear other 
  peoples opinions.

  Please report any bugs, and where possible supply the PRC which allows me to 
  reproduce the error. Please DO NOT mail any attachments greater than 100k to me 
  without being asked to first.
  
---------------------------------
 Why palmdeMON ?
---------------------------------

  MON represents the assembly MONitor (a nice 1980's term for a debugger :-). 
  Thats as deep as the name goes im afraid. I added the 'de' cos it sounds nice 
  and corny, and palmMON didnt exactly roll off the tongue :p
                                
--------------------------------------------------
 Where can I get the latest version of palmdeMON
--------------------------------------------------

  As palmdeMON is still in development, new versions are released at a rate of a 
  couple per week. 

  The latest version of palmdeMON can be found at 

  http://palmdemon.cjb.net

-----------------
 palmdeMON Usage
-----------------

  Usage: palmdeMON [filename.PRC [-C]]

  You can now set up a file association to launch palmdeMON when a PRC is opened in Windows.
  The -C command line switch automatically disassembles the first resident Code resource (excluding Code0)

  Im hoping pretty much everything else is self explanatory. 
  Theres a very terse manual on the palmdeMON website, which will always be out of date to some extent ;-) 
  Contact me if theres something youre stuck with, or dont understand about palmdeMON.

  Quick tips..

  F6        next workspaces
  F9        Focus the notes area, and set cursor to end of text buffer ready for a new note
  CTRL-F4   close active workspace
  
  CTRL-T    moves input focus to, and cycles through the various controls on the Tools panel


  And for the disassembly view only..
  
  CTRL-F    search for string
  F3        repeat search (forwards)
  CTRL-F3   repeat search (backwards)

  CTRL-C    copy selected disassembly output to clipboard
  
  Enter     add a user defined comment to current line 
  
  ESCAPE    return to previous cursor position (after following a jump) 
  
  Right click..
    Rename an address (right click in address column only)
    Copy selection (right click in selected area)
    Save disassembly to file
    
 
---------------------------------
 Version History                
---------------------------------

v0.24b - 15/04/2001
  Added A5 global xrefs at end of disassembly. (still needs a little more work to display them nicely).
  Double clicking on a global will jump to its entry in the directory
  Double clicking on a SysTrap will now display PalmOS API Help for it (requires PalmOS SDK Documentation)
  Fixed status bar bug which displayed the index of the selected resource in the file, rather than the res ID.
  Optimised display routines over v0.23. Hopefully should be nice and quick now.

v0.23b - 01/04/2001
  Added IDA style navigtion stack. Press ESC key to jump back to previous position.
  Cursor navigation has improved slightly (hold CTRL while arrow left.right)
  Rewrote disassembly display routines in order to support more advanced syntax highlighting and mouse handling
  Subsequently, disassembly and display has slowed down somewhat :( Once im confident the new design is working as expected I'll optimise these fully.
  Double clicking on a label will now jump to label location
  Changed disassembly view so that comment text may selected, and subsequently copied
  Added "Copy" function to right click menu on disassembly view
  Added vertical line spacing parameter for disassembly view 
  Added "Save Disassembly" option to menu in disassembly view
  Changed label name generation to be of form 'loc_ADDRESS' 
  Fixed bug which allowed user to insert multiple labels for an address in the disassembly view
  Checks added to prevent spaces from appearing in labels, and duplicate labels
  Added ability to color a block of code for easier navigation (right click on block of selected text)
  
v0.22b - 23/03/2001
  Fixed support for uncompressed bitmaps, and improved bitmap preview dialog.
  Added PRC history menu items to File menu.
  Improved support for Alert resources. Now should display correctly (bug found in win32 
    DrawText API which malfunctions when using non truetype fonts and DT_WORDBREAK parameter).
  Alert resources should now display buttons.
  Minor GUI enhancements.
  Added 'Find string' functionality for disassembly view. (See Quick Tips for key shortcuts).
  Hopefully fixed application error on copy to clipboard (difficult to debug since it only occurred 
    on w98) Let me know if this error occurs again please!
  Added Tools subpanel, allowing for easy converting between data representations.
  pdeMON window position, dimensions and sidebar section sizes are now persistent.
  Fixed bug which caused error when trying to save modified PRC notes on Windows 98. (thanks Muad`Dib)

v0.21b - 10/03/2001
  Preferences are now saved between sessions.
  Fixed minor bug which caused notes only to be saved if PRC was closed before exiting app.
  Added support for displaying the actual PRC header 
  Added customisable fonts and more color options for disassembly
  Added command line support
  Added very primitve support for viewing data segment. Note that the data segment is compressed, 
    and palmdeMON will not decompress it (this feature is added in the next version).
      
v0.20b - 04/03/2001
  Added support for code0 resource, indicating initial environment setup for A5
    register, globals and heap allocation
  Fixed bug which caused instability when reopening or closing an application
  Added Alert xrefs dialog to disassembly view, to allow rapid locating of alert
    references to a given Alert resource
  Added notes field, to allow comments to be held for a PRC (Auto saves on closing PRC)

v0.19b - 25/02/2001
  Added support to specify your preferred viewer for binary dumps, or specify
    extension and use default viewer.
  Improved support for disassembly execution flow tracking.

v0.18b - 25/02/2001
  Fixed Access Violation on CTRL-F4 to close workspace. WM_KEYDOWN Message was
    not being consumed and hence was jumping back to messageloop inside an already
    destroyed instance.
  Fixed scrolling problem in viewing Code0 resource, OOB error when visible
    lines per page > total lines in disassembly

v0.17b - 25/02/2001
  Fixed bug in downward scrolling of disassembly view.
  Fixed bug in disassembly view, lines per page was not recalculated on WM_SIZE
  Added color functionality in Preferences dialog. Maybe to be saved to INI file
    later.

v0.16b - 24/02/2001                                 
  Fixed bug in loading PRC's. Access violation sometimes due to buffer overrun
    in unterminated string resources.
  Fixed bad message processing bug in main page control. Occurred very
    sporadically due to some sort of nasty race condition.

v0.15b - 24/02/2001
  Speeded up clipboard operation - should be almost instant now
  Few minor disassembler enhancements

v0.14b - 23/02/2001
  Fixed bug causing some alerts which were previewed in the disassembly, to be
    created from incorrect resource objects
  Added version description
  Added Code 0 Environment Description
  Removed ability to close workspace using CTRL-F4. Had some problems, narrowed
    down to message processing in main host control (will be reinintroduced
    eventually).
  Added interrupt handler API support
  Added DateManager, SearchManager, Mailbox, Thread, and Gadget API
  Added support for internal stack API's

v0.13b - 22/02/2001
  Bitmap preview dialog is now screen centered
  Alert preview dialog is now screen centered
  Bitmap preview now shows small preview in bottom right
  Disassembly view now shows xref'd alerts in main client area instead of new
    window

v0.12b - 21/02/2001
  String resources now show content in resource tree
  Alert resources now show title in resource tree
  Closing a workspace autoselects previous workspace
  CTRL-F4 now closes current workspace

v0.11b - 21/02/2001
  Added Right click popup menu to copy selection on disasm view
  xrefs appear in blue on the disasm view
  Comments are painted in verdana proportional instead of courier new

v0.10b - 20/02/2001
  Initial Release

----------------
 Known Problems
----------------

Aligned data in the code segment is disassembled and not correctlly identified as data. 

Im not satisfied with the disassembly speed, or the display update speed, since i added 
  new features to both. This can be sped up lots, im sure :)

Muad`D1b has reported a crash on CTRL-F to find string, after closing a PRC and opening a 
  different one (on w98). Havent reproduced this, and looking at the code im not sure how 
  it could happen (although im quite sure it did). Any more info very welcome.

---------------------------------
 Contact Info
---------------------------------

I am contactable via mail, or on EfNet IRC.

Subscribe to the palmdeMON mailing list to be kept informed of updates.
http://www.egroups.com/group/palmdemon

Please let me know of any bugs/problems, stating your OS version, and pdemon version, and PRC where relevant.
Thankyou!

Carpathia 
carpathia_uk@mail.com
