========================================================================
News (latest changes) for the Palm OS Emulator
Copyright (c) 1999-2001 Palm, Inc. or its subsidiaries.
All rights reserved.

Please send bug reports, comments, suggestions, etc. to devsupp@palm.com
========================================================================

========================================================================
	REVISION HISTORY

	Starting in 2.1d25 (and backdated to 2.1d24) I'm giving credit
	to the person or people responsible for convincing me to fix a
	bug or add a feature, in some cases even providing the source code
	for the bug or feature. These people's names appear in []'s.

	See the file Credits.txt for a list of people who have submitted
	actual changes to the project.
========================================================================


Changes for 3.2 (xx/xx/01)
--------------------------
*	(Unix) Support psf, ram, rom, device, load_apps, and run_app
	command line options.  [David A. Jablonski]

*	Rewrote LCD-handling code to share a lot of cross-platform code.
	The major user visible effect of this is that the Unix version now
	has the white 2-pixel border around it when emulating a device with
	an SED 1375 or 1376 display, and that the updating on Unix will be
	faster (especially over a network).

*	Rewrote a lot of the EmDevice routines in order to be more table-
	driven.  Also added ability to configure the CPU object created, and
	the minimum RAM size that can be configured.

*	Added Visor Edge support.  [James Phillips]

*	Rewrote the menu-handling code to share a lot of cross-platform
	code.  Along the way, cleaned up some host-specific aspects of menu
	handling.  Over all:

	*	Mac

		o	Now has a popup menu that looks like the Windows version
			(use Ctrl-click to display it).

	*	Unix

		o	The popup menu on Unix now is laid out the same way as the
			Windows version.  This includes finally having the MRU menus
			for recent sessions and installable files.

		o	Can press Shift-F10 to display the popup menu.

	*	Windows

		o	Menu items now have Alt shortcut keys.  I would have used
			the more-standard Ctrl, but that's currently used for
			entering commands into the emulated environment.  I would
			have used the less-standard Ctrl+Shift, but felt that
			requiring three fingers for a shortcut command was
			excessive.

		o	The menu is popped-up in response to a WM_CONTEXTMENU
			message now instead of manually looking for F10 presses and
			right button clicks.  This means that (a) the menu is popped
			up at the *end* of a right-button click instead of the
			beginning, (b) you need to use Shift-F10 instead of just F10
			to popup the menu item, and (c) you can also use the "menu"
			key on some PC keyboards (the "VK_APPS" key).

	*	All

		o	Paves the way for dynamically updating menus for different
			circumstances (for instance, if emulating a particular
			device requires a menu special for it, that can be added).

		o	Hmmm...HostAddMenuCommand, anyone?  :-)

*	Sped up the checking for direct access to UI Mgr data structures.
	The overhead for this option should now be imperceptible.

*	Allow read/write access to font fields in ControlType, ListType,
	and FormLabelType.  [Many]

*	Allow read access to FormType::menuRscId field.  [Markus Schmid]

*	Allow complete access to gadgets (since gadget callback functions
	are given just a pointer to the gadget, but not the Form through
	which they could make access calls).  [Ben Combee]

*	Allow read/write access to "attr" for FormBitmapType before Palm OS
	3.2 -- FrmHideObject didn't change the usable bit before then.
	[Steve Achelis]

*	Fix access to WindowType::frame field.  This was allowed, but a bug
	in the calculation of the field's offset invalidated the access.
	[Stephen Best]

*	For Poser 3.1, access to WindowType fields displayWidthV20,
	displayHeightV20, displayAddrV20, and bitmapP was documented as
	"read only".  This is now enforced; write access is no longer
	allowed.

*	For Poser 3.1, access to the FieldType field attr was documented as
	"read/write" before Palm OS 3.3.  This is now enforced.

*	Allow access to WindowType fields even when the WindowType is part
	of a FormType.  It used to be that you could not access those fields
	if the windowFlags.dialog bit was set.

*	Fixed bug where Poser itself would cause an access violation to
	parts of a FormType when preparing the error message for a user
	access violation to the FormType.

*	Poser used to read and cache the size of the system function
	dispatch table.  However, some versions of Palm OS now resize the
	table, thus invalidating Poser's cached size value.  The result is
	that Poser would sometimes report that system functions are not
	implemented when they really are.  [Mike McCollister]

*	Squelch display of message saying that someone called DbgMessage
	("c") and DbgMessage ("Transaction finished").  [Catherine White,
	Andreas Linke, Mark Peters]

*	(Mac) Carbonized.  [Scott Gruby]

*	Be more robust in HostControl calls that take printf-style var-args
	parameters.

*	Fix potential bug in code that tries to find the beginning of a
	function given an address in that function.  [Adam Liss]

*	Support Soft, Hard, Debug, and No Extension resets.  The Reset menu
	item now brings up a dialog allowing you to set various
	reset-related options.  The "Reset" button in the "Continue / Debug
	/ Reset" dialog is now "Reset...", and brings up the same dialog. By
	default, the settings are set to a Soft Reset with Extensions.

*	Fixed problem where device could get into a "flashing" state while
	running Gremlins, where the device is continually turning on and
	off.  [Stephen Best]

*	Added 4 more slots in Card Options dialog.

*	If the user brings up the Card Options dialog, Poser checks for the
	existance of the HostFS shared library when exitting the dialog.  If
	the library is not installed, Poser displays a message dialog
	suggesting that the user download and install it.

*	Make sure the user can't accidentally attempt to install a HotSync
	User Name from the preferences dialog that's too long. [Steve
	Achelis]

*	(Unix) Extended "Choose File" dialog to support the choosing of
	directories.  This "Choose Directory" dialog is used when clicking
	on the "Browse" button in the "Card Options" dialog. Navigate via
	the file/directory name list, or type the path into the edit box. 
	You can use TAB for name completion, '/' to indicate that you want
	to enter the directory currently entered in the edit box, and RETURN
	(or click on the OK button) to select the directory in the edit box.

*	(Unix) Implemented clipboard support.  This support has uses in two
	areas: copying the text from error message boxes (see the next
	item), and clipboard interchange.  Clipboard interchange is where
	the Palm OS clipboard is kept in sync with the host clipboard.  On
	Unix, this is tricky because of the paradigm Unix uses for the
	clipboard.  But, in short, to copy from the Palm OS to a Unix
	application, select the text in the Palm OS application, select the
	Copy menu item in the Palm OS application, go to the Unix
	application, and middle-click to paste the selection.  To copy from
	a Unix application to a Palm OS application, select the text in the
	Unix application, go to the Palm OS application, set the insertion
	point, and select the Paste menu item.

*	(Unix) The error dialog that reports runtime errors in Palm OS
	applications (e.g., "Bus error", "Low-memory accessed", etc.) now
	displays the text in a selectable pane.  That is, the user can
	select the text with the mouse.  Once this is done, it acts like a
	selection in any other Unix program, and can be pasted by
	middle-clicking in the target Unix application.

*	(Unix) All dialogs are now centered on the main screen.

*	Show applications in the "New Gremlin" dialog even if they have the
	dmHdrAttrHidden bit set.  [Scott Johnson]

*	Fixed problem with profiling where any system function that Poser
	completely implemented (including all HostControl functions) would
	cause the profiling system to push a record onto an internal stack
	but not pop it off later, leading to an internal stack overflow.

*	Using a debugger to single-step over a line of source code that
	performed a "soft" invalid memory access (that is, one that is
	proscribed by convention, and not, say, one that causes an address
	error) would queue up the error and not show it until regular
	execution was resumed.  [Adam Dingle]

*	Support -horde_save_dir.  This option has been around for a couple
	of years, but never did anything.  It now works as documented.  Use
	it to specify the location for "GremlinStates_*" directories.  This
	parent directory must already exist.  If the directory does not
	exist or is not specified, the "GremlinStates_*" directories will be
	created in the Emulator directory as before.

*	When resetting a session or creating a new one, reset the Gremlin
	state so that the Suspend and Resume menu items are no longer
	enabled.
