Emu28 v1.22
DDESERV.C
- replaced all HeapAlloc() with malloc() memory requests
DEBUGGER.C
- replaced all HeapAlloc() with malloc() memory requests
- changed function ToggleBreakpoint() and EditBreakpoint(), minor code optimization purging breakpoint
- changed function Debugger(), removed all UpdateWindowStatus() function calls
- bugfix in function LoadBreakpointList(), added check of breakpoint entries against breakpoint table size
DISPLAY.C
- initialized the color array in variable bmiLcd now
- changed function CreateLcdBitmap(), removed color initialization
- changed function WritePixelQuad(), draw only the pixel that have to be switched on and removed color index 2 references in the pattern array of Zoom 2 and 4
DISRPL.C
- replaced all HeapAlloc() with malloc() memory requests
- bugfix in function BCDx(), fixed possible uninitialized bExpflag variable
- bugfix in function DoRrp(), fixed possible uninitialized bErr variable
EMU28.C
- removed global variable hHeap
- replaced all HeapAlloc() with malloc() memory requests
- renamed function UpdateWindowStatus() to OnInitMenu() and modified it to a WM_INITMENU message handler
- changed function OnFileNew() and WinMain(), removed all UpdateWindowStatus() function calls
- changed function MainWndProc(), added WM_INITMENU message handler and call of _CrtDumpMemoryLeaks() at end of program to detect malloc() memory leaks
EMU28.DSP
- changed the resource natural language to English
EMU28.H
- removed extern declaration of hHeap
- removed declaration of global functions UpdateWindowStatus(), ReadIO(), WriteIO(), ReadSlaveIO() and WriteSlaveIO()
- replaced all HeapAlloc() with malloc() memory requests
EMU28.RC
- changed version and copyright
ENGINE.C
- changed function SwitchToState(), removed all UpdateWindowStatus() function calls
EXTERNAL.C
- replaced all HeapAlloc() with malloc() memory requests
FILES.C
- replaced all HeapAlloc() with malloc() memory requests
- changed function ResetDocument(), OpenDocument(), SaveDocumentAs(), SaveBackup(), RestoreBackup() and ResetBackup(), removed all UpdateWindowStatus() function calls
- bugfix in function OpenDocument(), added check of KML script name length against target buffer size and fixed a bug calculating the number of key rows from the Chipset.Keyboard_Row buffer
- changed function DibNumColors(), changed function prototype from UINT to WORD return
- changed function CreateBIPalette(), changed variable UINT nNumColors to WORD wNumColors to avoid variable overflow loading palNumEntries of LOGPALETTE structure
KEYMACRO.C
- changed function OnToolMacroNew(), OnToolMacroPlay() and OnToolMacroStop(), removed all UpdateWindowStatus() function calls
KML.C
- replaced all HeapAlloc() with malloc() memory requests
- changed function ParseLines(), BOOL expression was missing in main while() loop, worked because TOK_NONE is 0
- bugfix in function ParseBlock(), string argument wasn´t freed in error case
- changed function KillKML(), removed UpdateWindowStatus() function call
- changed function LoadKMLGlobal(), used wrong variable type for variable eToken
MOPS.C
- added function NreadEx() as replacement for the functions Npeek() and Nread()
- changed function Npeek() and Nread(), coded as inline to call the replacement function NreadEx()
- made functions ReadIO(), WriteIO(), ReadSlaveIO() and WriteSlaveIO() static
MRU.C
- replaced all HeapAlloc() with malloc() memory requests
OPS.H
- bugfix in function FASTPTR(), longest opcode calculation from buffer size was wrong, so MMU boundary fixup wasn´t working properly
RPL.C
- replaced all HeapAlloc() with malloc() memory requests
STACK.C
- replaced all HeapAlloc() with malloc() memory requests
- bugfix in function RPL_GetBcd(), fixed possible uninitialized bExpflag variable
- bugfix in function OnStackCopy(), fixed possible uninitialized uClipboardFormat variable in DOCSTR case
SYMBFILE.C
- replaced all HeapAlloc() with malloc() memory requests
Emu28 v1.21
EMU28.C
- changed function Disasm(), added if opcode should be interpreted as PCO
EMU28.RC
- changed IDR_DEBUG_MEM, added several accelerator keys
- changed version
FILES.C
- changed function CorrectChecksum(), this version of the function can now replace the checksum at a given checksum address at not only at the end of a block
- removed function RebuildRomChecksum(), the function replaced the checksum at a wrong position and so destroyed valid code. Because the correct checksum positions of real ROM versions are unknown for me, code was removed
- bugfix in function PatchRom(), removed call of function RebuildRomChecksum() because checksums were replaced at wrong ROM addresses
OPS.H
- changed function Nunpack(), new coding for speed optimization, this solved also a bug in the code optimizer of VS2010 (the optimizer generated wrong code, another possible workaround for this problem was declaring the function argument "BYTE *a" as "volatile BYTE *a")
PCH.H
- added INVALID_FILE_ATTRIBUTES definition
SETTINGS.C
- changed function WriteReg() and DelReg(), changed function protoytypes to make them compatible with the functions WritePrivateProfileString() and WritePrivateProfileInt()
- changed function GetRegistryInt(), changed function protoytype to make it compatible with function GetPrivateProfileInt()
Emu28 v1.20
DISPLAY.C
- changed function UpdateContrast(), GetSizeLcdBitmap(), CreateLcdBitmap(), DestroyLcdBitmap(), UpdateMainDisplay(), UpdateAnnunciators() and StopDisplay(), added support for real image LCD background
- changed function UpdateMainDisplay(), removed remark that ROW line drivers aren´t emulated
EMU28.H
- extern declaration of global variable
- deleted unused DSPAREA enumeration
EMU28.RC
- changed IDD_DEBUG_SETTINGS, replaced "Ok" with "OK" and removed accelerator keys from "OK" and "Cancel"
- changed version and copyright
FILES.C
- added global variable pbyRamExt to hold the memory module pointer prior located in the Chipset structure
- changed function CorrectChecksum(), if the checksum without the last byte is already 1, 0xFF should be added instead of the also correct 0x00
- bugfix in function PatchRom(), if first patch address in a line was outside the ROM area, the emulator crashed with an access violation, removed the patch address wrap around
- changed function ResetDocument(), NewDocument(), OpenDocument(), SaveDocument(), SaveBackup(), RestoreBackup() and ResetBackup(), replaced Chipset memory pointer RamExt with new variable
KML.C
- changed function RunLine(), removed warning when compiling for x64 architecture
MOPS.C
- changed table EXT[], replaced Chipset memory pointer RamExt with new variable
- changed function WriteIO(), added detection of row line data write access to update the LCD background
OPCODES.C
- bugfix in function o807(), a pressed ON key prevented the CPU going into shutdown mode
OPS.H
- bugfix in function FASTPTR(), longest opcode is 21 nibbles long and fixed problem executing an opcode over a MMU boundary
PCH.H
- enabled WinXP style under VS2005 and VS2008
STACK.C
- bugfix in function OnStackCopy(), local target buffer was too small to hold a large complex number
TYPES.H
- changed structure CHIPSET, replaced RamExt with a DWORD placeholder, because when compiling for x64 architecture this 4 byte pointer grow up to 8 bytes and destroy the state file structure