Emu42 v1.18 is released. Emu42 is an emulator for the Pioneer series calculators HP14B, HP17B, HP17BII, HP27S, HP32SII and HP42S and for the Clamshell series calculators HP19BII and HP28S. It base on the sources of the famous HP calculator emulator Emu48 and is published under the GPL. The emulator PC version is running on all Win32 platforms and the Mobile version should run on all ARM CPU based Pocket PC 2002, Windows Mobile 2003 (SE), 5.0, 6 Classic and Professional versions.
Emu42 v1.18 Changelog:
DEBUGGER.C - removed INSTRSIZE definition - changed function GetAddr(), made function more general by adding address range check and the ability of decoding a symbolic entry into an address - bugfix in function OnSetCursor(), on "Activation follows mouse" enabled child dialogs lost focus when cursor moved over parent debugger dialog - changed function Debugger(), removed initialization of global variable wInstrSize - changed function EnterAddr(), changed parameter storage from static variable to window user data and replaced address decoder code by GetAddr() function call - changed function EnterBreakpoint(), replaced address decoder code by GetAddr() function call and so added decoding a symbolic entry into an address - bugfix in function LoadMemData(), forgot to check if file content fit into Saturn address range, loading now stops also after last Saturn address written - changed function SaveMemData(), added assertion for Saturn address verification - bugfix in function DebugMemLoad() and DebugMemSave(), adjusted to new prototype of function GetAddr() and so added checking if the given addresses are in the Saturn address range because Saturn read/write functions don't do the range check; this also cause a change in behavior, on empty address fields the operation fails and the dialog still remains open DISPLAY.C - changed table sSegtabSaca[], added 64bit qualifier to image constants - changed function UpdateContrastLewis(), replaced BitBlt() by PatBlt() function call - changed function CreateLcdBitmap(), the height of a Lewis chip Pioneer calculator pixel is now calculated by formula and added implementation to select the pixel drawing routine over function pointer, Zoom factors 1-4 still using the old implementation, greater Zoom factors are using a more generic approach - changed DestroyLcdBitmap(), added reset of variables x-zoom factor and function pointer WritePixel - replaced function WritePixel() by the new functions WritePixelZoom4(), WritePixelZoom3(), WritePixelZoom2() and WritePixelZoom1() and WritePixelDWORD(), WritePixelWORD() and WritePixelBYTE() with new implementation to support nLcdZoom values > 4 - changed function UpdateDisplayClamshell() and UpdateDisplayPioneer(), removed zoom factor assertion - changed function UpdateAnnunciators(), changed to a more efficient bitcount implementation EMU42.C - changed function SetSoundDeviceList(), replaced "Standard Audio" device ID from constant to definition - bugfix in function SettingsProc(), restart the sound engine by calling the clean up and initialization functions now and on "Activation follows mouse" enabled debugger dialog maybe got focus even if it's not the last active one - changed function OnFileNew(), removed call of function SaveBackup() which is already a part of function NewDocument() - changed function OnFileNew(), OnFileOpen(), OnFileMruOpen(), OnFileSave(), OnFileSaveAs() and OnFileClose(), switched detection of document is available from variable pbyRom (ROM image loaded) to variable bDocumentAvail - changed function WinMain(), added sound engine initialization and clean up EMU42.RC - changed version and copyright ENGINE.C - initialized variable wInstrSize with size of last instruction array (the circular buffer can hold (wInstrSize-1) instructions) - bugfix in function WorkerThread(), moved sound engine initialization and clean up from SM_RUN state to main function, this prevents a non responding Saturn CPU emulation when changing from SM_SLEEP to SM_RUN state during sound engine initialization FETCH.C - made typedef of jump table struct constant, so the const keyword was removed from all references of JMPTAB - changed function EvalOpcode(), minor code optimization FILES.C - bugfix in function PatchRom(), removed limitation that patch file must have 6 characters minimum, fixed a buffer overflow when end of patch file consists of white space characters, recalculate CRC's only on address patch written and return failture on syntax errors now KML.C - changed function InitLcd(), removed Zoom factor 4 limitation PCH.H - added MSVC6.0 compatible 64bit constant qualifier macro - added GWLP_USERDATA, SetWindowLongPtr, GetWindowLongPtr and LONG_PTR definitions for MSVC6.0 SDK and earlier REDEYE.C - changed function IrPrinter(), changed to a more efficient bitcount implementation for missed bits SETTINGS.C - changed function ReadSettings() and WriteSettings(), added item "LastInstrBufSize" in section [Debugger] in the INI-File STACK.C - added function Trim(), create a trimmed copy of the input string - added function SetBcd(), contain implementation of prior function RPL_SetBcd() - changed function RPL_SetBcd(), wrapper for function SetBcd() to trim data before decoding - changed function RPL_SetComplex(), create a trimmed working copy before decoding the outline brackets and because of the changed function RPL_SetBcd() the real number arguments are accepted with white spaces around now - removed disabled function IsRealNumber(), it was more or less functional compatible with actual modified function RPL_SetBcd() TIMER.C - removed UNIX_0_TIME definition UDP.C - changed function SendByteUdp(), replaced malloc() by _alloca() call for UNICODE wchar to char string translation to get rid of freeing the allocated memory manually |
Download: Emu42 v1.18
Source: Here
Random Related Topic
0 Comments
Post a Comment