2012-06-06

Emu42 v1.15

EmuCR: Emu42Emu42 v1.15 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.15 Changelog:
DEBUGGER.C
- removed structure MODEL_MAP_T, variables MemMap[], pbyMapData,
dwMapDataSize and pMapping, the implementation behind moved to
module DISMEM.C
- changed function SetMappingMenu(), InitMemMap() and OnFindOK(),
changed to DISMEM.C implementation
- changed function GetMemCurAddr(), OnMemGoAdr(), OnKeyUpDown() and
OnKeyPlusMinus(), variable dwMapDataSize isn't global any more,
use function GetMemDataMask() instead
- changed function ViewCodeWnd(), set disassembler to memory mapped
mode
- changed function ViewMemWnd(), removed initialized but unused
variable and changed to DISMEM.C implementation
- bugfix in function OnDblClick(), fixed buffer overflow when
converting a 2 byte hexadecimal string to a byte and added an
update of code window
- changed function Debugger(), changed disassembler mode setting and
added initialization of RPL object viewer get nibble function in
WM_INITDIALOG message
- bugfix in function UpdateRplObjViewWnd(), show entry point names
only in mapped mode and end address for RPL object viewer depend
on the actual memory mapping mode and with the design change to
the DISMEM.C implementation in all debugger and disassembler
related parts, the RPL object viewer also works in all memory
mapping modes properly now

DISASM.C
- changed function read_nibble(), call function GetMemNib() from the
new module DISMEM.C for mapping mode memory access and made
function static

DISPLAY.C
- initialized the color array in variable bmiLcd now
- changed function UpdateContrastSaca(), new brush is only necessary
for an initialized KML contrast palette entry
- changed function CreateLcdBitmap(), preset KML contrast palette
with black on background for the case of a complete uninitialized
KML contrast palette
- changed function WritePixel(), draw only the pixel that have to be
switched on
- changed function UpdateContrastLewis(), CreateLcdBitmap(),
DestroyLcdBitmap(), UpdateDisplayClamshell(),
UpdateDisplayPioneer(), UpdateAnnunciators() and StopDisplay(),
added support for real image LCD background
- changed function UpdateDisplaySacajawea(), don't draw display
pattern on uninitialized KML foreground contrast palette entry
- changed function UpdateMainDisplay(), exchanged StretchBlt() back
to BitBlt() because the bug in the WineHQ BitBlt() implementation
was fixed in Wine 1.4

DISRPL.C
- the get nibble function is not hard referenced as read_nibble()
call any more, it's now called over RplReadNibble() function
pointer
- changed function PrintTail(), expanded to handle 6 digit addresses
- changed function RplCreateObjView(), defined end pointer also as
constant

DISRPL.H
- added extern declaration of RplReadNibble() function pointer

EMU42.C
- changed function SettingsProc(), added "Single Instance" checkbox
handling
- changed function OnPaint(), exchanged StretchBlt() back to
BitBlt() in display redraw part because the bug in the WineHQ
BitBlt() implementation was fixed in Wine 1.4
- bugfix in function OnDropFiles(), changed function prototype to
the correct structure type of dropped file names and initialized
the bSuccess variable for the case the wNumFiles variable is 0
- changed function Disasm(), changed to DISMEM.C implementation
- changed function MainWndProc(), made correct type cast to argument
of function OnDropFiles()
- changed function WinMain(), replaced multiple class name usage
with atom variable, added current directory reading, moved read
settings before window creation added check for setting
"SingleInstance" to switch to an already running program instance
instead of creating a new one and added more flexible CPU binding
for the Saturn core emulation thread on Windows Vista and later

EMU42.DSP
- added dismem.c sources

EMU42.H
- added enum MEM_MAPPING
- removed FullFilename() declaration
- extern declaration of global variables and functions
- removed extern declaration of global variable

EMU42.RC
- added item "Single Instance" in settings dialog
- changed version and copyright

FILES.C
- added szCurrentDirectory[] variable holding the current directory
at program start
- removed function FullFilename()
- changed function PatchRom(), MapRom() and LoadBitmapFile(),
relaced call of function FullFilename() by calling
SetCurrentDirectory() twice
- bugfix in function DecodeBmp() and DecodeGif(), a 2nd bitmap load
allocated and bound a 2nd palette to the main window, now only the
1st bitmap (mostly the KML background bitmap) bound his palette to
the main window

KML.C
- changed table pLexToken[], defined table as constant and changed
last token id table preset from constant number to member of token
id enumerator
- changed function DestroyKmlList() and CreateKmlList(), changed
function prototype explicit setting VOID as argument
- changed function CreateKmlList(), IncludeLines(), IncludeBlocks(),
LoadKMLGlobal() and InitKML(), relaced call of function
FullFilename() by calling SetCurrentDirectory() twice
- bugfix in function ParseString(), decoding the \" sequence as
quotation mark inside a string was incomplete, so every single '\'
character was also removed
- bugfix in function ReloadButtons(), ON key button wasn't handled

MRU.C
- changed function MruUpdateMenu(), changed variable type of
variable hMenu
- changed function MruReadList(), removed initialized but unused
variable

RESOURCE.H
- added definition

SETTINGS.C
- changed function ReadSettings(), moved current directory reading
and CPU speed setting to MainWndProc()
- changed function ReadSettings() and WriteSettings(), added item
"SingleInstance" in section [Emulator] in the INI-File

UDP.C
- added function ResetUdp(), reset UDP address
- bugfix in function SendByteUdp(), fixed memory leak at error
condition and optimized IP address decoding

USRPRG32.C
- bugfix in function ReadBuffer3(), function return type was missing


EmuCR: Emu42

Download: Emu42 v1.15
Source: Here

0 Comments

Post a Comment