2024-03-19 23:35:31 +01:00
|
|
|
|
Service Pack 66 for Emu48 Version 1.0
|
|
|
|
|
|
|
|
|
|
DISRPL.C
|
|
|
|
|
- changed function PutSn(), BINx(), DoSemiStream(),
|
|
|
|
|
RplDecodeObject() and RplCreateObjView(), added error handling for
|
|
|
|
|
memory allocation failed
|
|
|
|
|
|
|
|
|
|
EMU48.C
|
|
|
|
|
- changed function WinMain(), added disable of TIMER_RESOLUTION
|
|
|
|
|
throttling for Windows 11 and added a more flexible CPU binding
|
|
|
|
|
for the Saturn core emulation thread on Windows Vista and later
|
|
|
|
|
with function GetCurrentProcessorNumber()
|
|
|
|
|
|
|
|
|
|
EMU48.H
|
|
|
|
|
- added _KB definition
|
|
|
|
|
- changed function prototypes
|
|
|
|
|
- extern declaration of global variable and functions
|
|
|
|
|
- removed extern declaration of global function
|
|
|
|
|
- added inline function UpCRC(), new implementation as inline
|
|
|
|
|
function using a polynomial multiplication instead of the earlier
|
|
|
|
|
polynomial table solution which is faster on host CPUs with a
|
|
|
|
|
hardware integer multiplication unit
|
|
|
|
|
|
|
|
|
|
EMU48.DSP
|
|
|
|
|
- added romcrc.c and pngcrc.c sources
|
|
|
|
|
- added "LODEPNG_NO_COMPILE_CRC" to lodepng.c definitions
|
|
|
|
|
|
|
|
|
|
EMU48.RC
|
|
|
|
|
- changed version and copyright
|
|
|
|
|
|
|
|
|
|
FILES.C
|
|
|
|
|
- added global variable for ROM CRC correction
|
|
|
|
|
- changed pbySignatureA[], pbySignatureB[], pbySignatureE[],
|
|
|
|
|
pbySignatureW[] and pbySignatureV[] to the byte pointer array
|
|
|
|
|
bySignature[] and defined signatures as constant
|
|
|
|
|
- changed function PatchRom(), made function public and set flag to
|
|
|
|
|
correct the ROM CRC
|
|
|
|
|
- changed function MapRom() and UnmapRom(), speed optimization
|
|
|
|
|
unpacking/packing ROM image and added reset of ROM patch flag
|
|
|
|
|
- changed function CrcPort2(), made function public, optimized
|
|
|
|
|
memory access and replaced CRC formula by call of function UpCRC()
|
|
|
|
|
- changed function NewDocument(), SaveBackup(), RestoreBackup() and
|
|
|
|
|
CreateRgnFromBitmap(), added error handling for memory allocation
|
|
|
|
|
failed
|
|
|
|
|
- changed function OpenDocument(), simplified file signature check
|
|
|
|
|
- changed function SaveDocument(), adjusted to bySignatureE[]
|
|
|
|
|
|
|
|
|
|
KML.C
|
|
|
|
|
- changed function AddToLog(), optimized implementation
|
|
|
|
|
- changed function DestroyKmlList(), minor optimization
|
|
|
|
|
- changed function CreateKmlList(), added error handling for memory
|
|
|
|
|
allocation failed
|
|
|
|
|
- changed function ParseString(), optimized memory allocation and
|
|
|
|
|
added error handling for memory allocation failed
|
|
|
|
|
- changed function ParseLine(), ParseLines() and ParseBlock(),
|
|
|
|
|
added error handling for memory allocation failed
|
|
|
|
|
- changed function InitKML(), added rebuild of ROM CRC after ROM
|
|
|
|
|
patches
|
|
|
|
|
|
|
|
|
|
LODEPNG.C
|
|
|
|
|
- changed implementation file to LodePNG version 20230410 with
|
|
|
|
|
unmarked typecast patches for x64 compatibility, Copyright (c)
|
|
|
|
|
2005-2023 Lode Vandevenne
|
|
|
|
|
|
|
|
|
|
LODEPNG.H
|
|
|
|
|
- changed header file to LodePNG version 20230410
|
|
|
|
|
|
|
|
|
|
MOPS.C
|
|
|
|
|
- moved function UpCRC() with a new function prototype and
|
|
|
|
|
implementation to EMU48.H
|
|
|
|
|
- changed function Nread(), adjusted to he new prototype of function
|
|
|
|
|
UpCRC()
|
|
|
|
|
- changed function ReadIO(), added CPU slow down for the TBF bit in
|
|
|
|
|
the TCS (0x112) register as workaround for the HP48G-series
|
|
|
|
|
transmit buffer full timeout overflow in the XSEND command and the
|
|
|
|
|
software derivations base on this source code
|
|
|
|
|
|
|
|
|
|
PCH.H
|
|
|
|
|
- added definitions, emum and struct for calling function
|
|
|
|
|
SetProcessInformation()
|
|
|
|
|
|
|
|
|
|
PNGCRC.C
|
|
|
|
|
- new module for generating the PNG CRC32 replacing the CRC
|
|
|
|
|
generation in LODEPNG.C
|
|
|
|
|
|
|
|
|
|
ROMCRC.C
|
|
|
|
|
- new module correcting the ROM CRC after a ROM patch
|
|
|
|
|
|
|
|
|
|
SERIAL.C
|
|
|
|
|
- bugfix in function CommOpen(), global variable dwBytesRead wasn't
|
|
|
|
|
initialized with 0 in all cases
|
|
|
|
|
- bugfix in function CommReceive(), added workaround for ReadFile()
|
|
|
|
|
timeouts to get "Library 1275: XYMODEM v3.2 for S/G" working
|
|
|
|
|
|
|
|
|
|
UDP.C
|
|
|
|
|
- replaced static IN_ADDR by SOCKADDR_IN structure
|
|
|
|
|
- changed function ResetUdp(), invalidate IP address inside
|
|
|
|
|
SOCKADDR_IN structure
|
|
|
|
|
- changed function SendByteUdp(), replaced local SOCKADDR_IN
|
|
|
|
|
by the global static SOCKADDR_IN structure
|
|
|
|
|
|
|
|
|
|
|
2024-03-19 23:35:31 +01:00
|
|
|
|
Service Pack 65 for Emu48 Version 1.0
|
|
|
|
|
|
|
|
|
|
EMU48.C
|
|
|
|
|
- changed function SettingsPeripheralProc(), get the COM port state
|
|
|
|
|
over function CommIsOpen() now
|
|
|
|
|
- changed function SaveChanges(), added document name to MRU list
|
|
|
|
|
- changed function OnFileMruOpen(), modified implementation taking
|
|
|
|
|
care of the SaveChanges() modification adding a filename to the
|
|
|
|
|
MRU list after saving a document
|
|
|
|
|
|
|
|
|
|
EMU48.H
|
|
|
|
|
- changed function prototype
|
|
|
|
|
- extern declaration of global functions
|
|
|
|
|
- removed extern declaration of global variable
|
|
|
|
|
|
|
|
|
|
EMU48.RC
|
|
|
|
|
- changed version and copyright
|
|
|
|
|
|
|
|
|
|
ENGINE.C
|
|
|
|
|
- removed global variable bCommInit
|
|
|
|
|
- changed function CheckSerial(), get the COM port state over
|
|
|
|
|
function CommIsOpen() now
|
|
|
|
|
- changed function WorkerThread(), removed bCommInit setting
|
|
|
|
|
|
|
|
|
|
FILES.C
|
|
|
|
|
- changed function DibNumColors(), CreateBIPalette() and
|
|
|
|
|
DecodeBmp(), marked BITMAPINFOHEADER pointer as unaligned
|
|
|
|
|
- changed function CreateBIPalette() and DecodeBmp(), minor
|
|
|
|
|
optimization at input data check
|
|
|
|
|
- changed function DecodePng(), simplified destination row pointer
|
|
|
|
|
calculation in main loop and removed dead code in function
|
|
|
|
|
cleanup
|
|
|
|
|
|
|
|
|
|
LODEPNG.C
|
|
|
|
|
- changed implementation file to LodePNG version 20220717 with
|
|
|
|
|
unmarked typecast patches for x64 compatibility, Copyright (c)
|
|
|
|
|
2005-2022 Lode Vandevenne
|
|
|
|
|
|
|
|
|
|
LODEPNG.H
|
|
|
|
|
- changed header file to LodePNG version 20220717
|
|
|
|
|
|
|
|
|
|
MOPS.C
|
|
|
|
|
- bugfix in function ReadIO(), the RBF (Receive Buffer Full) bit was
|
|
|
|
|
cleared before the content of the RBR LSB (0x114) and RBR MSB
|
|
|
|
|
(0x115) register was read, so the serial port event thread
|
|
|
|
|
overwrote the RBR register with new data in some conditions
|
|
|
|
|
- bugfix in function WriteIO(), fixed implementation of the EIRU
|
|
|
|
|
bit in the IRC (0x11A) register
|
|
|
|
|
|
|
|
|
|
MRU.C
|
|
|
|
|
- added some remarks
|
|
|
|
|
- added function MruID(), return ID of the given entry
|
|
|
|
|
- changed function MruFilename(), changed function interface writing
|
|
|
|
|
found filename into a buffer instead of returning a pointer to the
|
|
|
|
|
filename
|
|
|
|
|
|
|
|
|
|
PCH.H
|
|
|
|
|
- added __unaligned definition for MSVC6.0 SDK and earlier
|
|
|
|
|
|
|
|
|
|
SERIAL.C
|
|
|
|
|
- added new function CommIsOpen(), return if COM port open
|
|
|
|
|
- bugfix in function CommReceive(), the ReadFile() buffer argument
|
|
|
|
|
was a BYTE** instead of a BYTE* (the wrong argument type was fixed
|
|
|
|
|
by the compiler)
|
|
|
|
|
|
|
|
|
|
|
2024-03-19 23:35:31 +01:00
|
|
|
|
Service Pack 64 for Emu48 Version 1.0
|
|
|
|
|
|
|
|
|
|
DEBUGGER.C
|
|
|
|
|
- bugfix in function EnterBreakpoint(), returned an uninitialized
|
|
|
|
|
address value on empty breakpoint edit control
|
|
|
|
|
- bugfix in function OnDrawBreakWnd(), fixed highlighted background
|
|
|
|
|
color
|
|
|
|
|
|
|
|
|
|
DISASM.C
|
|
|
|
|
- bugfix in function disasm_1() and disasm_8(), fixed decoding of
|
|
|
|
|
r=ss, ss=r and rssEX with ss = 5, 6, 7, D, E or F register select
|
|
|
|
|
|
|
|
|
|
EMU48.C
|
|
|
|
|
- changed function OnContextMenu(), when the context menu was
|
|
|
|
|
generated from the keyboard it opened at a fix position, now when
|
|
|
|
|
the mouse cursor position is inside the client window, at the
|
|
|
|
|
mouse cursor position
|
|
|
|
|
|
|
|
|
|
EMU48.RC
|
|
|
|
|
- changed version and copyright
|
|
|
|
|
|
|
|
|
|
ENGINE.C
|
|
|
|
|
- changed function InitAdjustSpeed(), added critical section for
|
|
|
|
|
writing reference CPU cycles and reference time
|
|
|
|
|
- bugfix in function AdjKeySpeed() and SetSpeed(), removed critical
|
|
|
|
|
section handling for initializing CPU slow down, because this
|
|
|
|
|
section is locked when the CPU emulation thread already slow down
|
|
|
|
|
the CPU speed
|
|
|
|
|
|
|
|
|
|
FETCH.C
|
|
|
|
|
- bugfix in table o81Af2_, o81Af1_ and o81Af0_, replaced o_invalid6
|
|
|
|
|
function pointers by their corresponding opcode function
|
|
|
|
|
- bugfix in table o12_, o11_ and o10_, replaced o_invalid3 function
|
|
|
|
|
pointers by their corresponding opcode function
|
|
|
|
|
|
|
|
|
|
LODEPNG.C
|
|
|
|
|
- changed implementation file to LodePNG version 20210627 with
|
|
|
|
|
unmarked typecast patches for x64 compatibility, Copyright (c)
|
|
|
|
|
2005-2021 Lode Vandevenne
|
|
|
|
|
|
|
|
|
|
LODEPNG.H
|
|
|
|
|
- changed header file to LodePNG version 20210627
|
|
|
|
|
|
|
|
|
|
MOPS.C
|
|
|
|
|
- bugfix in function ReadT2Acc(), moved critical section because
|
|
|
|
|
InitAdjustSpeed() part is already protected
|
|
|
|
|
|
|
|
|
|
SOUND.C
|
|
|
|
|
- bugfix in function SoundOut(), removed critical section handling
|
|
|
|
|
because InitAdjustSpeed() is already protected
|
|
|
|
|
|
|
|
|
|
|
2024-03-19 23:35:30 +01:00
|
|
|
|
Service Pack 63 for Emu48 Version 1.0
|
|
|
|
|
|
|
|
|
|
DISPLAY.C
|
|
|
|
|
- changed function UpdateAnnunciators(), changed function prototype
|
|
|
|
|
with an additional argument to get information which annunciators
|
|
|
|
|
have changed, so only the annunciators which have changed are
|
|
|
|
|
redrawn now
|
|
|
|
|
|
|
|
|
|
EMU48.C
|
|
|
|
|
- changed function OnPaint(), changed call of function
|
|
|
|
|
UpdateAnnunciators() updating all annunciators
|
|
|
|
|
|
|
|
|
|
EMU48.DSP
|
|
|
|
|
- removed external.c sources
|
|
|
|
|
|
|
|
|
|
EMU48.H
|
|
|
|
|
- removed DISP_ANNUN definition
|
|
|
|
|
- changed function prototype
|
|
|
|
|
- removed extern declaration of global functions
|
|
|
|
|
|
|
|
|
|
EMU48.RC
|
|
|
|
|
- changed version and copyright
|
|
|
|
|
|
|
|
|
|
ENGINE.C
|
|
|
|
|
- changed function CheckDisp(), removed assertion with DISP_ANNUN
|
|
|
|
|
definition
|
|
|
|
|
- changed function WorkerThread(), changed call of function
|
|
|
|
|
UpdateAnnunciators() updating all annunciators
|
|
|
|
|
|
|
|
|
|
EXTERNAL.C
|
|
|
|
|
- file deleted
|
|
|
|
|
|
|
|
|
|
FETCH.C
|
|
|
|
|
- changed table o81B_, replaced beep patch opcode o81B1 by
|
|
|
|
|
o_invalid4
|
|
|
|
|
|
|
|
|
|
FILES.C
|
|
|
|
|
- changed function OpenDocument(), when KML script file name is
|
|
|
|
|
longer than the file buffer, skip the name heading until the name
|
|
|
|
|
remainder fits into the buffer, this cause a KML script error with
|
|
|
|
|
the selection of a new KML script instead of a general document
|
|
|
|
|
file read error before
|
|
|
|
|
|
|
|
|
|
KML.C
|
|
|
|
|
- changed function InitKML(), changed warning to error at ROM beep
|
|
|
|
|
patch detection
|
|
|
|
|
|
|
|
|
|
LODEPNG.C
|
|
|
|
|
- changed implementation file to LodePNG version 20200306 with
|
|
|
|
|
unmarked typecast patches for x64 compatibility, Copyright (c)
|
|
|
|
|
2005-2020 Lode Vandevenne
|
|
|
|
|
|
|
|
|
|
LODEPNG.H
|
|
|
|
|
- changed header file to LodePNG version 20200306
|
|
|
|
|
|
|
|
|
|
MOPS.C
|
|
|
|
|
- changed function WriteIO(), the annunciator access variable now
|
|
|
|
|
contain bit coded the annunciators which have changed and is the
|
|
|
|
|
argument for the modified UpdateAnnunciators() function
|
|
|
|
|
|
|
|
|
|
OPCODES.C
|
|
|
|
|
- removed function o81B1() as part of the beep patch
|
|
|
|
|
|
|
|
|
|
OPCODES.H
|
|
|
|
|
- removed extern declaration of function o81B1()
|
|
|
|
|
|
|
|
|
|
|
2024-03-19 23:35:30 +01:00
|
|
|
|
Service Pack 62 for Emu48 Version 1.0
|
|
|
|
|
|
|
|
|
|
DEBUGGER.C
|
|
|
|
|
- added enum type, static variables and static function prototypes
|
|
|
|
|
for trace implementation
|
|
|
|
|
- removed all occurrences of UNREFERENCED_PARAMETER(wParam);
|
|
|
|
|
- changed function NotifyDebugger(), added flush trace buffer
|
|
|
|
|
- changed function Debugger(), added trace implementation in case
|
|
|
|
|
WM_INITDIALOG, WM_DESTROY and WM_COMMAND
|
|
|
|
|
- added functions StartTrace(), StopTrace(), FlushTrace(),
|
|
|
|
|
PrintTrace(), OutTrace(), OnBrowseTraceSettings(),
|
|
|
|
|
TraceSettings(), OnTraceSettings() and OnTraceEnable() for trace
|
|
|
|
|
implementation
|
|
|
|
|
|
|
|
|
|
DISPLAY.C
|
|
|
|
|
- changed function CreateMainBitmap(), changed LoadBitmapFile()
|
|
|
|
|
function call loading a bitmap with realizing a palette
|
|
|
|
|
- changed function CreateAnnunBitmap(), changed LoadBitmapFile()
|
|
|
|
|
function call loading a bitmap without realizing a palette
|
|
|
|
|
|
|
|
|
|
EMU48.C
|
|
|
|
|
- added variable bMouseButton saving if mouse button was pressed
|
|
|
|
|
when mouse cursor was inside a virtual button hit area
|
|
|
|
|
- removed function OnNcHitTest(), replaced by additional
|
|
|
|
|
OnLButtonDown() implementation
|
|
|
|
|
- changed function OnLButtonDown(), added part for windows movement
|
|
|
|
|
when having no title bar prior done over the WM_NCHITTEST message
|
|
|
|
|
handler which caused side effects
|
|
|
|
|
- changed function OnLButtonUp() and OnKeyDown(), added reset of
|
|
|
|
|
variable bMouseButton
|
|
|
|
|
- changed function MainWndProc(), added WM_ENDSESSION handler for
|
|
|
|
|
document saving, WM_CONTEXTMENU calls the context menu only when
|
|
|
|
|
the right mouse button was not pressed over a virtual button hit
|
|
|
|
|
area before, removed the WM_NCRBUTTONUP case and removed the
|
|
|
|
|
WM_NCHITTEST message handler
|
|
|
|
|
|
|
|
|
|
EMU48.DSP
|
|
|
|
|
- added "LODEPNG_NO_COMPILE_ANCILLARY_CHUNKS" to lodepng.c
|
|
|
|
|
definitions
|
|
|
|
|
|
|
|
|
|
EMU48.H
|
|
|
|
|
- changed function prototype
|
|
|
|
|
- extern declaration of global functions
|
|
|
|
|
|
|
|
|
|
EMU48.RC
|
|
|
|
|
- added dialog IDD_TRACE
|
|
|
|
|
- changed menu IDR_DEBUG, added ID_TRACE_SETTINGS and
|
|
|
|
|
ID_TRACE_ENABLE menu items
|
|
|
|
|
- changed version and copyright
|
|
|
|
|
|
|
|
|
|
ENGINE.C
|
|
|
|
|
- changed function Debugger(), added function fnOutTrace() call
|
|
|
|
|
|
|
|
|
|
FILES.C
|
|
|
|
|
- added function CheckForBeepPatch() looking for ROM beep patches at
|
|
|
|
|
known positions
|
|
|
|
|
- bugfix in function NewDocument(), initialize the ROM fingerprint
|
|
|
|
|
after loading the KML script
|
|
|
|
|
- changed function DecodeBmp(), DecodeGif(), DecodePng() and
|
|
|
|
|
LoadBitmapFile(), changed function prototype by adding an argument
|
|
|
|
|
if a palette should realized
|
|
|
|
|
|
|
|
|
|
KML.C
|
|
|
|
|
- bugfix in function ParseLines() and ParseBlocks(), if loading of
|
|
|
|
|
an include file failed the KML script line number at the error
|
|
|
|
|
message was wrong
|
|
|
|
|
- changed function InitKML(), added error check ROM beep patches
|
|
|
|
|
|
|
|
|
|
LODEPNG.C
|
|
|
|
|
- changed implementation file to LodePNG version 20190914 with
|
|
|
|
|
unmarked typecast patches for x64 compatibility, Copyright (c)
|
|
|
|
|
2005-2019 Lode Vandevenne
|
|
|
|
|
|
|
|
|
|
LODEPNG.H
|
|
|
|
|
- changed header file to LodePNG version 20190914
|
|
|
|
|
|
|
|
|
|
RESOURCE.H
|
|
|
|
|
- added definitions
|
|
|
|
|
|
|
|
|
|
|
2024-03-19 23:35:30 +01:00
|
|
|
|
Service Pack 61 for Emu48 Version 1.0
|
|
|
|
|
|
|
|
|
|
EMU48.DSP
|
|
|
|
|
- added lodepng.h and lodepng.c sources
|
|
|
|
|
|
|
|
|
|
EMU48.RC
|
|
|
|
|
- changed version
|
|
|
|
|
|
|
|
|
|
FILES.C
|
|
|
|
|
- added function DecodePng() as wrapper for decoding PNG image files
|
|
|
|
|
- changed function LoadBitmapFile(), added PNG image file support
|
|
|
|
|
- added function EncodeColorBits() returning bitfield position
|
|
|
|
|
encoded color bits
|
|
|
|
|
- bugfix in function CreateRgnFromBitmap(), removed GetObject() call
|
|
|
|
|
for getting the image properties, they are get over a GetDIBits()
|
|
|
|
|
query now, removed creating a memory DC because it's unused and
|
|
|
|
|
added bitfield decoding which is important for the 16 bit (5:6:5)
|
|
|
|
|
color setting
|
|
|
|
|
|
|
|
|
|
KML.C
|
|
|
|
|
- changed function AdjustPixel(), changed function prototype using
|
|
|
|
|
a buffer position instead of device context pixel coordinate to
|
|
|
|
|
locate the adjustable pixel
|
|
|
|
|
- changed function TransparentCircle(), complete new implementation
|
|
|
|
|
with changed function prototype; the prior implementation used the
|
|
|
|
|
GetPixel()/SetPixel() method to adjust the pixel color of a single
|
|
|
|
|
pixel, this method was extremely slow on some PC configurations,
|
|
|
|
|
the current method is creating a byte copy of the complete target
|
|
|
|
|
area, does the pixel adjustments on byte level and finally copy
|
|
|
|
|
the result back to the target device context
|
|
|
|
|
- changed function DrawButton(), adjusted implementation to new
|
|
|
|
|
prototype of function TransparentCircle()
|
|
|
|
|
|
|
|
|
|
LODEPNG.C
|
|
|
|
|
- new module for decoding PNG files LodePNG version 20180611 with
|
|
|
|
|
unmarked typecast patches for x64 compatibility, Copyright (c)
|
|
|
|
|
2005-2018 Lode Vandevenne
|
|
|
|
|
|
|
|
|
|
LODEPNG.H
|
|
|
|
|
- header file for decoding PNG files LodePNG version 20180611,
|
|
|
|
|
Copyright (c) 2005-2018 Lode Vandevenne
|
|
|
|
|
|
|
|
|
|
|
2024-03-19 23:35:30 +01:00
|
|
|
|
Service Pack 60 for Emu48 Version 1.0
|
|
|
|
|
|
|
|
|
|
DISRPL.C
|
|
|
|
|
- changed function DoHexStream() and DoHxs(), removed trailing space
|
|
|
|
|
if data length is zero
|
|
|
|
|
- bugfix in function DoIntStream(), =DOINT stream with zero data
|
|
|
|
|
length crashed decoder
|
|
|
|
|
|
|
|
|
|
EMU48.C
|
|
|
|
|
- bugfix in function OnViewCopy(), fixed unsynchronized GDI
|
|
|
|
|
operations, fixed wrong menu display view when left margin of main
|
|
|
|
|
display is unequal to zero and dependent on the LCD zoom factor
|
|
|
|
|
the bitmap in the clipboard was sometimes too small
|
|
|
|
|
|
|
|
|
|
EMU48.RC
|
|
|
|
|
- changed version and copyright
|
|
|
|
|
|
|
|
|
|
|
2024-03-19 23:35:30 +01:00
|
|
|
|
Service Pack 59 for Emu48 Version 1.0
|
|
|
|
|
|
|
|
|
|
DISPLAY.C
|
|
|
|
|
- splitted nGdiZoom in nGdiXZoom and nGdiYZoom to get the ability
|
|
|
|
|
for different zoom factors in x and y direction
|
|
|
|
|
- added function CreateAnnunBitmap() and DestroyAnnunBitmap(),
|
|
|
|
|
handle a separate annunciator bitmap
|
|
|
|
|
- changed function UpdateMainDisplay(), UpdateMenuDisplay(),
|
|
|
|
|
WriteToMainDisplay() and WriteToMenuDisplay(), modified to the
|
|
|
|
|
separated nGdiXZoom and nGdiYZoom zoom factors
|
|
|
|
|
- bugfix in function ResizeWindow(), added Critical Section for GDI
|
|
|
|
|
access
|
|
|
|
|
|
|
|
|
|
EMU48.C
|
|
|
|
|
- changed function OnPaint(), modified to the separated nGdiXZoom
|
|
|
|
|
and nGdiYZoom zoom factors
|
|
|
|
|
- added function OnTopics() to call help file
|
|
|
|
|
- changed function MainWndProc(), added ID_HELP_TOPICS message
|
|
|
|
|
handler
|
|
|
|
|
|
|
|
|
|
EMU48.H
|
|
|
|
|
- changed window style for disabled title bar, added system menu
|
|
|
|
|
with minimize in task bar
|
|
|
|
|
- extern declaration of global variables and functions
|
|
|
|
|
|
|
|
|
|
EMU48.RC
|
|
|
|
|
- changed IDD_CHOOSEKML, enlarged width of dialog to get an enlarged
|
|
|
|
|
"Current KML Script" combo box
|
|
|
|
|
- changed IDD_KMLLOG, enlarged width of "Title of the Script", "by"
|
|
|
|
|
and "The Author" text boxes
|
|
|
|
|
- added Menuitem Help "Help Topics" in main menu
|
|
|
|
|
- changed version and copyright
|
|
|
|
|
|
|
|
|
|
FILES.C
|
|
|
|
|
- changed function NewDocument(), removed SetWindowLocation() call
|
|
|
|
|
in restore case because on a valid document the window position
|
|
|
|
|
was already restored in function RestoreBackup()
|
|
|
|
|
- changed function GetSaveObjectFilename(), changed function
|
|
|
|
|
behavior with file extensions; the old implementation added the
|
|
|
|
|
default extension always when the file had no extension or the
|
|
|
|
|
given extension wasn't in the file filter list, the actual
|
|
|
|
|
implementation adds the default extension for the case of no
|
|
|
|
|
extension only
|
|
|
|
|
- added function LoadIconFromFile(), load icon file and activate the
|
|
|
|
|
icons
|
|
|
|
|
- added function LoadIconDefault(), activate the window class
|
|
|
|
|
default icons
|
|
|
|
|
|
|
|
|
|
KML.C
|
|
|
|
|
- added keyword "Zoomxy", "Scale" and "Icon" to pLexToken[] table
|
|
|
|
|
- changed function InitGlobal(), added implementation of keyword
|
|
|
|
|
"Scale" and "Icon"
|
|
|
|
|
- changed function InitLcd(), adjusted keyword "Zoom" to the
|
|
|
|
|
separated nGdiXZoom and nGdiYZoom zoom factors, added
|
|
|
|
|
implementation of keyword "Zoomxy" and "Bitmap"
|
|
|
|
|
- changed function KillKML(), added LoadIconDefault() to disable
|
|
|
|
|
custom icons, added DestroyAnnunBitmap() and preset of some global
|
|
|
|
|
variables
|
|
|
|
|
- changed function DrawAnnunciator(), added alternative annunciator
|
|
|
|
|
bitmap
|
|
|
|
|
- added function ResizeMainBitmap(), resize main bitmap and main
|
|
|
|
|
bitmap dependend variables like size, offset, ...
|
|
|
|
|
- changed function InitKML(), added scaling main bitmap
|
|
|
|
|
|
|
|
|
|
KML.H
|
|
|
|
|
- added TOK_ZOOMXY, TOK_SCALE and TOK_ICON definition
|
|
|
|
|
|
|
|
|
|
MOPS.C
|
|
|
|
|
- changed function Npeek() and Nread(), removed conditional jump for
|
|
|
|
|
speed optimization
|
|
|
|
|
|
|
|
|
|
RESOURCE.H
|
|
|
|
|
- added ID_HELP_TOPICS definition
|
|
|
|
|
|
|
|
|
|
|
2024-03-19 23:35:30 +01:00
|
|
|
|
Service Pack 58 for Emu48 Version 1.0
|
|
|
|
|
|
|
|
|
|
DDESERV.C
|
|
|
|
|
- bugfix in function DdeCallback(), improved input data checking and
|
|
|
|
|
avoided multiple DDE data fetch in XTYP_POKE case
|
|
|
|
|
|
|
|
|
|
DEBUGGER.C
|
|
|
|
|
- changed function UpdateStackWnd(), OnStackPush() and OnStackPop(),
|
|
|
|
|
fixed signed/unsigned mismatch
|
|
|
|
|
- bugfix in function OnLButtonUp(), fixed a buffer overflow when
|
|
|
|
|
converting a 3 byte hexadecimal string to variable Chipset.out
|
|
|
|
|
which overwrite the content of variable Chipset.in, fixed a buffer
|
|
|
|
|
overflow when converting a 4 byte hexadecimal string to variable
|
|
|
|
|
Chipset.in which overwrite the following two padding bytes and
|
|
|
|
|
changed method converting a 2 byte hexadecimal string to variable
|
|
|
|
|
Chipset.Bank_FF
|
|
|
|
|
- changed function UpdateProfileWnd(), fixed signed/unsigned
|
|
|
|
|
mismatch and optimized ENG unit search break
|
|
|
|
|
- changed function InfoWoRegister(), changed function prototype to
|
|
|
|
|
DLGPROC
|
|
|
|
|
|
|
|
|
|
DISPLAY.C
|
|
|
|
|
- added variable for additional GDI zoom
|
|
|
|
|
- changed function UpdateMainDisplay(), UpdateMenuDisplay(),
|
|
|
|
|
WriteToMainDisplay() and WriteToMenuDisplay(), replaced BitBlt by
|
|
|
|
|
StretchBlt operation to implement an additional GDI zoom factor
|
|
|
|
|
(there is no noticeable speed difference between BitBlt and
|
|
|
|
|
StretchBlt with a stretching factor of 1)
|
|
|
|
|
- bugfix in function ResizeWindow(), the WM_PAINT message wasn't
|
|
|
|
|
generated by the InvalidateRect() call when the title and menu bar
|
|
|
|
|
was disabled and the client area was empty, so we got a main
|
|
|
|
|
window with zero size which could not be activated any more ->
|
|
|
|
|
issue solved by forcing a menu bar when client area is empty
|
|
|
|
|
|
|
|
|
|
EMU48.C
|
|
|
|
|
- changed szLicence string, updated to the latest revision of the
|
|
|
|
|
GPLv2
|
|
|
|
|
- moved function SetSoundDeviceList() to SNDENUM.C
|
|
|
|
|
- bugfix in function SettingsGeneralProc(), SettingsMemoryProc() and
|
|
|
|
|
SettingsPeripheralProc(), changed function prototype to DLGPROC
|
|
|
|
|
for getting a 64 bit lParam pointer when compiling for x64
|
|
|
|
|
architecture
|
|
|
|
|
- changed function OnPaint(), replaced BitBlt by StretchBlt
|
|
|
|
|
operation at display handling to implement an additional GDI zoom
|
|
|
|
|
factor
|
|
|
|
|
- changed function OnViewSettings(), removed DLGPROC typecasts
|
|
|
|
|
|
|
|
|
|
EMU48.DSP
|
|
|
|
|
- added snddef.h and sndenum.c sources
|
|
|
|
|
|
|
|
|
|
EMU48.H
|
|
|
|
|
- extern declaration of global variable and function
|
|
|
|
|
|
|
|
|
|
EMU48.RC
|
|
|
|
|
- changed IDD_SET_PERIPHERAL, enlarged width of slider
|
|
|
|
|
IDC_SOUND_SLIDER and combo box IDC_SOUND_DEVICE
|
|
|
|
|
- changed version and copyright
|
|
|
|
|
|
|
|
|
|
KML.C
|
|
|
|
|
- changed function InitLcd(), removed Zoom factor 4 limitation
|
|
|
|
|
- changed function KillKML(), added reset of variable nGdiZoom
|
|
|
|
|
- changed function iSqrt(), changed implementation to Heron's method
|
|
|
|
|
for speed optimization
|
|
|
|
|
|
|
|
|
|
SNDDEF.H
|
|
|
|
|
- include files and interface definitions for SNDENUM.C for
|
|
|
|
|
compilers without installed DirectX SDK
|
|
|
|
|
|
|
|
|
|
SNDENUM.C
|
|
|
|
|
- new module with implementation of function SetSoundDeviceList()
|
|
|
|
|
prior located in EMU48.C for sound device enumeration showing the
|
|
|
|
|
full device name used since Windows Vista
|
|
|
|
|
|
|
|
|
|
STACK.C
|
|
|
|
|
- removed include resource.h
|
|
|
|
|
|
|
|
|
|
|
2024-03-19 23:35:30 +01:00
|
|
|
|
Service Pack 57 for Emu48 Version 1.0
|
|
|
|
|
|
|
|
|
|
DEBUGGER.C
|
|
|
|
|
- bugfix in function OnContextMenu(), when the context menu was
|
|
|
|
|
generated from the keyboard it was opened at the wrong position
|
|
|
|
|
- bugfix in function Debugger(), use critical section for secure
|
|
|
|
|
deletion of the last instruction buffer
|
|
|
|
|
|
|
|
|
|
DISMEM.C
|
|
|
|
|
- changed function SetMemRomType(), fixed signed/unsigned mismatch
|
|
|
|
|
|
|
|
|
|
DISPLAY.C
|
|
|
|
|
- changed function ResizeWindow(), optimized implementation now
|
|
|
|
|
works independent from window style and menu bar setting
|
|
|
|
|
|
|
|
|
|
DISRPL.C
|
|
|
|
|
- changed function PutSn(), minor optimization
|
|
|
|
|
- changed function DoHexStream(), DoIntStream(), DoBint(), DoReal(),
|
|
|
|
|
DoERel(), DoCmp(), DoECmp(), DoChar(), DoCStr(), DoHxs(),
|
|
|
|
|
DoIdnt(), DoLam(), DoRomp(), Semi() and DoFlashPtr(), added
|
|
|
|
|
UNREFERENCED_PARAMETER statement
|
|
|
|
|
- changed function DoERel(), made function static
|
|
|
|
|
- changed function Getfp(), fixed signed/unsigned mismatch
|
|
|
|
|
|
|
|
|
|
EMU48.C
|
|
|
|
|
- added global variable dwTColor and dwTColorTol for the background
|
|
|
|
|
transparency color matching
|
|
|
|
|
- added global variable hRgn to hold a region resource handle for
|
|
|
|
|
a transparent background bitmap
|
|
|
|
|
- added global variables bTitleBar, bShowTitle, bShowMenu and
|
|
|
|
|
bClientWinMove
|
|
|
|
|
- added Critical Section initialization
|
|
|
|
|
- added function UpdateWindowBars(), helper function to update state
|
|
|
|
|
of title and menu bar
|
|
|
|
|
- changed function SettingsGeneralProc(), added "Show Title" and
|
|
|
|
|
"Show Menu" checkbox handling
|
|
|
|
|
- changed function SettingsPeripheralProc(), added
|
|
|
|
|
UNREFERENCED_PARAMETER statement
|
|
|
|
|
- changed function OnPaint(), added UpdateWindowBars() call
|
|
|
|
|
- changed function OnInitMenu(), added MRU list update
|
|
|
|
|
- added function OnContextMenu(), context menu implementation
|
|
|
|
|
- added function OnNcHitTest(), when no title bar check if mouse
|
|
|
|
|
position is in client not over a button area
|
|
|
|
|
- changed function MainWndProc(), minor change in WM_PALETTECHANGED
|
|
|
|
|
implementation and added WM_CONTEXTMENU, WM_NCRBUTTONUP and
|
|
|
|
|
WM_NCHITTEST message handler
|
|
|
|
|
- changed function WinMain(), changed method of memory leak
|
|
|
|
|
detection by adding _CrtSetDbgFlag() at begin and removing
|
|
|
|
|
_CrtDumpMemoryLeaks() at end of program
|
|
|
|
|
|
|
|
|
|
EMU48.H
|
|
|
|
|
- added window styles definition
|
|
|
|
|
- changed function prototypes
|
|
|
|
|
- extern declaration of global variables and function
|
|
|
|
|
|
|
|
|
|
EMU48.RC
|
|
|
|
|
- changed IDD_SET_GENERAL, added "Show Title" and "Show Menu"
|
|
|
|
|
checkbox
|
|
|
|
|
- added menu IDM_MENU
|
|
|
|
|
- changed version and copyright
|
|
|
|
|
|
|
|
|
|
ENGINE.C
|
|
|
|
|
- bugfix in function SaveInstrAddr(), added critical section to be
|
|
|
|
|
sure that last instruction buffer is still available
|
|
|
|
|
|
|
|
|
|
FETCH.C
|
|
|
|
|
- added typecast to all pLnk entries for compatibility with C++
|
|
|
|
|
compiling on GCC 4.8.1
|
|
|
|
|
|
|
|
|
|
FILES.C
|
|
|
|
|
- defined abs() and labs() as intrinsic
|
|
|
|
|
- changed function DibNumColors(), fixed typecast
|
|
|
|
|
- changed function DecodeGif(), changed function prototype by adding
|
|
|
|
|
an argument overwritten by the transparent color if found
|
|
|
|
|
- changed function LoadBitmapFile(), adjusted to new prototype of
|
|
|
|
|
function DecodeGif()
|
|
|
|
|
- added function AbsColorCmp() and LabColorCmp(), compare colors
|
|
|
|
|
with tolerance
|
|
|
|
|
- added function CreateRgnFromBitmap(), create opaque bitmap region
|
|
|
|
|
|
|
|
|
|
KML.C
|
|
|
|
|
- added keyword "SysItem" to pLexToken[] table
|
|
|
|
|
- changed function InitGlobal(), added implementation of keyword
|
|
|
|
|
"Color"
|
|
|
|
|
- changed function RunLine(), added implementation of keyword
|
|
|
|
|
"SysItem"
|
|
|
|
|
- changed function KillKML(), added reset of variables hRgn,
|
|
|
|
|
dwTColor and dwTColorTol
|
|
|
|
|
- added function MouseIsButton() to check if mouse over button area
|
|
|
|
|
- changed function MouseMovesTo(), changed _ASSERT implementation to
|
|
|
|
|
make sure that class cursor is NULL and use function
|
|
|
|
|
MouseIsButton() to select cursor type now
|
|
|
|
|
|
|
|
|
|
KML.H
|
|
|
|
|
- added TOK_SYSITEM definition
|
|
|
|
|
- changed structure KmlToken, replaced TCHAR array szName[20] with
|
|
|
|
|
LPCTSTR szName pointer
|
|
|
|
|
- added MouseIsButton() function prototype
|
|
|
|
|
|
|
|
|
|
MRU.C
|
|
|
|
|
- changed all function argument types from INT to UINT
|
|
|
|
|
- removed global variables hMruMenu and nMruPos
|
|
|
|
|
- removed all update menu calls in this module and made functions
|
|
|
|
|
robust against non initialized MRU list and ID index out of range
|
|
|
|
|
- changed function GetMenuPosForId(), changed function prototype so
|
|
|
|
|
the resulting menu handle and menu position aren't global
|
|
|
|
|
variables any more
|
|
|
|
|
- changed function MruInit(), changed return value from FALSE to
|
|
|
|
|
TRUE for success and changed implementation like used in the PPC
|
|
|
|
|
emulator variants
|
|
|
|
|
- changed function MruUpdateMenu(), changed function prototype by
|
|
|
|
|
adding the HMENU argument for updating the selected menu and added
|
|
|
|
|
initialization prior done in function MruInit()
|
|
|
|
|
- changed function MruWriteList(), if there are no entries don't
|
|
|
|
|
write the "FileCount" setting any more
|
|
|
|
|
|
|
|
|
|
PCH.H
|
|
|
|
|
- added _WINSOCK_DEPRECATED_NO_WARNINGS definition
|
|
|
|
|
- added GCLP_HCURSOR, SetClassLongPtr, GetClassLongPtr and ULONG_PTR
|
|
|
|
|
definitions for MSVC6.0 SDK and earlier
|
|
|
|
|
|
|
|
|
|
REDEYE.C
|
|
|
|
|
- changed function CreateCorrectionBits(), fixed signed/unsigned
|
|
|
|
|
mismatch
|
|
|
|
|
|
|
|
|
|
RESOURCE.H
|
|
|
|
|
- added definitions
|
|
|
|
|
|
|
|
|
|
SERIAL.C
|
|
|
|
|
- changed function CommOpen(), fixed signed/unsigned mismatch
|
|
|
|
|
|
|
|
|
|
SETTINGS.C
|
|
|
|
|
- changed function ReadSettings() and WriteSettings(), added item
|
|
|
|
|
"ShowTitle", "ShowMenu" and "ClientWinMove" in section [Emulator]
|
|
|
|
|
in the INI-File
|
|
|
|
|
|
|
|
|
|
STACK.C
|
|
|
|
|
- changed function SetBcd(), fixed signed/unsigned mismatch
|
|
|
|
|
- bugfix in function RPL_GetComplex(), function arguments nMantLen
|
|
|
|
|
and nExpLen hadn't been used
|
|
|
|
|
|
|
|
|
|
SYMBFILE.C
|
|
|
|
|
- changed function RplLoadTable(), made optimizations and added
|
|
|
|
|
integrity checks
|
|
|
|
|
|
|
|
|
|
|
2024-03-19 23:35:30 +01:00
|
|
|
|
Service Pack 56 for Emu48 Version 1.0
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
EMU48.C
|
|
|
|
|
- changed function SetSoundDeviceList(), replaced "Standard Audio"
|
|
|
|
|
device ID from constant to definition
|
|
|
|
|
- bugfix in function SettingsGeneralProc(), on "Activation follows
|
|
|
|
|
mouse" enabled debugger dialog maybe got focus even if it's not
|
|
|
|
|
the last active one
|
|
|
|
|
- bugfix in function SettingsPeripheralProc(), restart the sound
|
|
|
|
|
engine by calling the clean up and initialization functions now
|
|
|
|
|
- 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 OnViewCopy(), removed MONOCHROME source code part
|
|
|
|
|
- changed function WinMain(), added sound engine initialization and
|
|
|
|
|
clean up
|
|
|
|
|
|
|
|
|
|
EMU48.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
|
|
|
|
|
|
|
|
|
|
PCH.H
|
|
|
|
|
- added GWLP_USERDATA, SetWindowLongPtr, GetWindowLongPtr and
|
|
|
|
|
LONG_PTR definitions for MSVC6.0 SDK and earlier
|
|
|
|
|
|
|
|
|
|
SETTINGS.C
|
|
|
|
|
- changed function ReadSettings() and WriteSettings(), added item
|
|
|
|
|
"LastInstrBufSize" in section [Debugger] in the INI-File
|
|
|
|
|
|
|
|
|
|
SOUND.C
|
|
|
|
|
- bugfix in function DestroyWaveThread(), the WM_QUIT message may
|
|
|
|
|
failed and so the sound message thread wasn't shut down
|
|
|
|
|
- changed function SoundOpen(), added additional check if the sound
|
|
|
|
|
device support the necessary audio format
|
|
|
|
|
|
|
|
|
|
STACK.C
|
|
|
|
|
- added function Trim(), create a trimmed copy of the input string
|
|
|
|
|
- added function SetZInt(), contain implementation of prior function
|
|
|
|
|
RPL_SetZInt()
|
|
|
|
|
- changed function RPL_SetZInt(), wrapper for function SetZInt() to
|
|
|
|
|
trim data before decoding
|
|
|
|
|
- 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
|
|
|
|
|
|
|
|
|
|
|
2024-03-19 23:35:30 +01:00
|
|
|
|
Service Pack 55 for Emu48 Version 1.0
|
|
|
|
|
|
|
|
|
|
DISMEM.C
|
|
|
|
|
- prepared for C++ compiling
|
|
|
|
|
|
|
|
|
|
EMU48.C
|
|
|
|
|
- replaced global variable lThreadId with local variable dwThreadId
|
|
|
|
|
- added global variable with the identifier for the waveform-audio
|
|
|
|
|
output device
|
|
|
|
|
- added function SetSoundDeviceList(), helper function for filling
|
|
|
|
|
sound device combo box with waveform-audio output devices
|
|
|
|
|
- changed function SettingsPeripheralProc(), removed sound radio
|
|
|
|
|
button handlers and added implementation of sound device combo box
|
|
|
|
|
- bugfix in function OnViewScript(), ROM image change wasn't handled
|
|
|
|
|
|
|
|
|
|
EMU48.DSP
|
|
|
|
|
- added sound.c sources
|
|
|
|
|
|
|
|
|
|
EMU48.H
|
|
|
|
|
- extern declaration of global variables and functions
|
|
|
|
|
- removed extern declaration of global variable
|
|
|
|
|
|
|
|
|
|
EMU48.RC
|
|
|
|
|
- changed IDD_SET_PERIPHERAL dialog, removed "Speaker" and "Wave"
|
|
|
|
|
radio buttons and added "Device" combo box in the sound section
|
|
|
|
|
- changed version
|
|
|
|
|
|
|
|
|
|
ENGINE.C
|
|
|
|
|
- added global variable bEnableSlow for global disabling slowing
|
|
|
|
|
down the CPU
|
|
|
|
|
- added global variable bSoundSlow slowing down the CPU core at
|
|
|
|
|
sound output
|
|
|
|
|
- changed function AdjustSpeed() and InitAdjustSpeed, added sound
|
|
|
|
|
slow down implementation
|
|
|
|
|
- changed function WorkerThread(), added sound engine control
|
|
|
|
|
|
|
|
|
|
EXTERNAL.C
|
|
|
|
|
- removed global variable bWaveBeep
|
|
|
|
|
- moved global variable dwWaveVol to module sound.c
|
|
|
|
|
- removed functions BeepWave(), BeepWin9x() and Beeper()
|
|
|
|
|
- changed function External() and RCKBp(), removed PC speaker
|
|
|
|
|
support and used function SoundBeep() instead of Beeper() for beep
|
|
|
|
|
output over sound card
|
|
|
|
|
|
|
|
|
|
FILES.C
|
|
|
|
|
- bugfix in function MapRom(), modified minimum file size detection
|
|
|
|
|
and fixed memory deallocation bug in memory allocation error case
|
|
|
|
|
- changed function MapPort2(), improved file size validation and
|
|
|
|
|
freeing of file mapping in error case
|
|
|
|
|
- changed function UnmapPort2(), added ability to free incomplete
|
|
|
|
|
file mapping
|
|
|
|
|
|
|
|
|
|
KML.C
|
|
|
|
|
- bugfix in function KillKML(), key mapping state table wasn't
|
|
|
|
|
cleared at the end
|
|
|
|
|
|
|
|
|
|
MOPS.C
|
|
|
|
|
- changed function ReadIO(), make only DEBUG_SERIAL output if
|
|
|
|
|
bUpdate is true to distinguish between peek-access from debugger
|
|
|
|
|
(no output) and read-access from opcode evaluation (with output)
|
|
|
|
|
|
|
|
|
|
OPCODES.C
|
|
|
|
|
- changed function o801(), call beeper handler function on beeper
|
|
|
|
|
port change
|
|
|
|
|
|
|
|
|
|
RESOURCE.H
|
|
|
|
|
- added definition
|
|
|
|
|
- removed IDC_SOUND_SPEAKER and IDC_SOUND_WAVE
|
|
|
|
|
|
|
|
|
|
SETTINGS.C
|
|
|
|
|
- bugfix in function GetRegistryString(), ignored target buffer size
|
|
|
|
|
when copying the default to the target string buffer
|
|
|
|
|
- changed function ReadSettings() and WriteSettings(), added item
|
|
|
|
|
"WaveDeviceId" and "WaveTime" and deleted item "WaveBeep" in
|
|
|
|
|
section [Emulator] in the INI-File
|
|
|
|
|
|
|
|
|
|
SOUND.C
|
|
|
|
|
- new module for native beeper emulation over wave output device
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Service Pack 54 for Emu48 Version 1.0
|
|
|
|
|
|
|
|
|
|
DDESERV.C
|
|
|
|
|
- prepared for C++ compiling
|
|
|
|
|
|
|
|
|
|
DEBUGGER.C
|
|
|
|
|
- prepared for C++ compiling
|
|
|
|
|
- added new function OnCodeFindPCO(), search for a PCO object in the
|
|
|
|
|
code window
|
|
|
|
|
- changed function Debugger(), added context menu commands handler
|
|
|
|
|
in the WM_COMMAND section
|
|
|
|
|
- changed function OnFindOK(), added downwards search direction
|
|
|
|
|
- changed function Find(), added and changed message handler for the
|
|
|
|
|
"Previous" and "Next" buttons
|
|
|
|
|
|
|
|
|
|
DISPLAY.C
|
|
|
|
|
- prepared for C++ compiling
|
|
|
|
|
|
|
|
|
|
EMU48.C
|
|
|
|
|
- prepared for C++ compiling
|
|
|
|
|
- added function OnCopyData() as WM_COPYDATA message handler
|
|
|
|
|
implementation for changing the state file to the given state file
|
|
|
|
|
name
|
|
|
|
|
- changed function MainWndProc(), added WM_COPYDATA message handler
|
|
|
|
|
- changed function WinMain(), expanded single instance case by
|
|
|
|
|
transmitting the given state file name to the already opened
|
|
|
|
|
program instance
|
|
|
|
|
|
|
|
|
|
EMU48.H
|
|
|
|
|
- prepared for C++ compiling
|
|
|
|
|
- added WM_COPYDATA identifier definition
|
|
|
|
|
|
|
|
|
|
EMU48.RC
|
|
|
|
|
- changed IDD_FIND, added a "Previous" button for previous search,
|
|
|
|
|
shorten the text of the "Find Next" button to "Next" and changed
|
|
|
|
|
the ID of the next search button
|
|
|
|
|
- added "Previous PCO" and "Next PCO" menu entries in debugger
|
|
|
|
|
"Code" context menu
|
|
|
|
|
- changed version and copyright
|
|
|
|
|
|
|
|
|
|
EXTERNAL.C
|
|
|
|
|
- prepared for C++ compiling
|
|
|
|
|
|
|
|
|
|
FETCH.C
|
|
|
|
|
- prepared for C++ compiling
|
|
|
|
|
|
|
|
|
|
FILES.C
|
|
|
|
|
- prepared for C++ compiling
|
|
|
|
|
- changed function MapRom() and UnmapRom(), replaced VirtualAlloc()
|
|
|
|
|
with malloc() memory request
|
|
|
|
|
- changed function SaveBackup() and RestoreBackup(), improved
|
|
|
|
|
document available detection and added check at port data copy if
|
|
|
|
|
port source buffer is allocated
|
|
|
|
|
|
|
|
|
|
I28F160.C
|
|
|
|
|
- prepared for C++ compiling
|
|
|
|
|
|
|
|
|
|
KML.C
|
|
|
|
|
- prepared for C++ compiling
|
|
|
|
|
- added global variable wKeybLocId to hold the keyboard layout input
|
|
|
|
|
locale at begin of KML loading
|
|
|
|
|
- added global variable bLocaleInc for checking if locale block
|
|
|
|
|
content already included
|
|
|
|
|
- added keyword "Locale" to pLexToken[] and token TOK_LOCALE to
|
|
|
|
|
eIsGlobalBlock[] table
|
|
|
|
|
- changed function ParseLine() and ParseBlock(), preset szLexString
|
|
|
|
|
variable with NULL after freeing
|
|
|
|
|
- changed function IncludeLines() and IncludeBlocks(), changed
|
|
|
|
|
function prototype by adding a boolean argument for selecting the
|
|
|
|
|
text message "Including" or "Parsing" in the log file
|
|
|
|
|
- bugfix in function ParseLines(), return a TOK_NONE line for an
|
|
|
|
|
empty block instead of a NULL pointer which regular stands for a
|
|
|
|
|
syntax error
|
|
|
|
|
- bugfix in function ParseLines() and ParseBlocks(), changed
|
|
|
|
|
function prototype by adding a boolean argument for selecting the
|
|
|
|
|
mode "include" or "parse" for the next lines or blocks and
|
|
|
|
|
verifying the "Include" argument was incomplete and may caused
|
|
|
|
|
memory leaks at error condition
|
|
|
|
|
- bugfix in function ParseBlock(), verifying the block commmand
|
|
|
|
|
argument was incomplete and may caused a memory leak at error
|
|
|
|
|
condition
|
|
|
|
|
- changed function ParseBlocks(), changed function prototype by
|
|
|
|
|
adding a boolean argument if an "End" token is also valid and
|
|
|
|
|
added implementation of block "Locale"
|
|
|
|
|
- changed function KillKML(), added reset of variables wKeybLocId
|
|
|
|
|
and bLocaleInc
|
|
|
|
|
- changed function ReleaseButton(), for speed optimization skip
|
|
|
|
|
function if button is already released
|
|
|
|
|
- bugfix in function LoadKMLGlobal(), fixed a memory leak caused by
|
|
|
|
|
the error condition that expected block command is a string
|
|
|
|
|
- changed function InitKML(), read and added current keyboard layout
|
|
|
|
|
input locale setting to log file text
|
|
|
|
|
|
|
|
|
|
KML.H
|
|
|
|
|
- added TOK_LOCALE definition
|
|
|
|
|
|
|
|
|
|
MRU.C
|
|
|
|
|
- prepared for C++ compiling
|
|
|
|
|
|
|
|
|
|
PCH.H
|
|
|
|
|
- added include malloc.h
|
|
|
|
|
|
|
|
|
|
RESOURCE.H
|
|
|
|
|
- added definitions
|
|
|
|
|
- removed IDC_FIND_CASE
|
|
|
|
|
|
|
|
|
|
RPL.C
|
|
|
|
|
- prepared for C++ compiling
|
|
|
|
|
|
|
|
|
|
STACK.C
|
|
|
|
|
- prepared for C++ compiling
|
|
|
|
|
|
|
|
|
|
SYMBFILE.C
|
|
|
|
|
- prepared for C++ compiling
|
|
|
|
|
|
|
|
|
|
|
2024-03-19 23:35:30 +01:00
|
|
|
|
Service Pack 53 for Emu48 Version 1.0
|
|
|
|
|
|
|
|
|
|
DEBUGGER.C
|
|
|
|
|
- removed structure MODEL_MAP_T, variables pbyNoMEM, MemMap[],
|
|
|
|
|
pbyMapData, dwMapDataSize and pMapping, the implementation behind
|
|
|
|
|
moved to module DISMEM.C
|
|
|
|
|
- changed function SetMappingMenu(), changed to DISMEM.C
|
|
|
|
|
implementation and added control of memory data menu items
|
|
|
|
|
- changed function GetMemCurAddr(), OnMemGoAdr(), OnKeyUpDown() and
|
|
|
|
|
OnKeyPlusMinus(), variable dwMapDataSize isn't global any more,
|
|
|
|
|
use function GetMemDataMask() instead
|
|
|
|
|
- changed function InitMemMap(), ViewMemWnd() and OnFindOK(),
|
|
|
|
|
changed to DISMEM.C implementation
|
|
|
|
|
- changed function ViewCodeWnd(), set disassembler to memory mapped
|
|
|
|
|
mode
|
|
|
|
|
- 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 and added calls of "Load Memory Data..." and
|
|
|
|
|
"Save Memory Data..." handling functions
|
|
|
|
|
- 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
|
|
|
|
|
- added functions OnBrowseLoadMem(), OnBrowseSaveMem(),
|
|
|
|
|
LoadMemData(), SaveMemData(), GetAddr(), DebugMemLoad(),
|
|
|
|
|
OnMemLoadData(), DebugMemSave() and OnMemSaveData() to handle the
|
|
|
|
|
Load/Save Memory Data feature
|
|
|
|
|
|
|
|
|
|
DISASM.C
|
|
|
|
|
- removed global variable disassembler_map
|
|
|
|
|
- removed functions rn_map(), rn_rom(), rn_ram(), rn_port1() and
|
|
|
|
|
rn_port2()
|
|
|
|
|
- changed function read_nibble(), call function GetMemNib() from the
|
|
|
|
|
new module DISMEM.C for mapping mode memory access and made
|
|
|
|
|
function static again
|
|
|
|
|
|
|
|
|
|
DISMEM.C
|
|
|
|
|
- new module for accessing memory data for debug view purpose
|
|
|
|
|
|
|
|
|
|
DISPLAY.C
|
|
|
|
|
- changed function GetLineCounterGray() to static
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
DISRPL.H
|
|
|
|
|
- added extern declaration of RplReadNibble() function pointer
|
|
|
|
|
|
|
|
|
|
EMU48.C
|
|
|
|
|
- changed function Disasm(), replaced the radio button
|
|
|
|
|
implementation for the memory mapping mode by a combo box
|
|
|
|
|
solution; the combo box solution don't work with the HP48 module
|
|
|
|
|
names any more, it now use the memory controller names used in the
|
|
|
|
|
debugger memory viewer for a more general approach for the non
|
|
|
|
|
HP48 calculator models
|
|
|
|
|
- changed function WinMain(), added more flexible CPU binding for
|
|
|
|
|
the Saturn core emulation thread on Windows NT4.0 and later
|
|
|
|
|
|
|
|
|
|
EMU48.DSP
|
|
|
|
|
- added dismem.c sources
|
|
|
|
|
|
|
|
|
|
EMU48.H
|
|
|
|
|
- replaced old "memory module definitions" by the enum MEM_MAPPING
|
|
|
|
|
- extern declaration of global functions
|
|
|
|
|
- removed extern declaration of global variables
|
|
|
|
|
|
|
|
|
|
EMU48.RC
|
|
|
|
|
- changed IDD_DISASM dialog, replaced the radio buttons for the
|
|
|
|
|
memory mapping mode by a more general combo box
|
|
|
|
|
- added dialogs IDD_DEBUG_MEMSAVE and IDD_DEBUG_MEMLOAD
|
|
|
|
|
- added "Load Memory Data..." and "Save Memory Data..." menu entries
|
|
|
|
|
in debugger "Memory" context menu
|
|
|
|
|
- changed version
|
|
|
|
|
|
|
|
|
|
KML.C
|
|
|
|
|
- bugfix in function ReloadButtons(), ON key button wasn't handled
|
|
|
|
|
|
|
|
|
|
RESOURCE.H
|
|
|
|
|
- added several definitions
|
|
|
|
|
- deleted some radio button definitions from the IDD_DISASM dialog
|
|
|
|
|
|
|
|
|
|
TIMER.C
|
|
|
|
|
- changed function SetHP48Time(), time calculation now work properly
|
|
|
|
|
for host system dates before 1970/01/01 and after 2106/02/07
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Service Pack 52 for Emu48 Version 1.0
|
|
|
|
|
|
|
|
|
|
DEBUGGER.C
|
|
|
|
|
- changed function ViewMemWnd(), removed initialized but unused
|
|
|
|
|
variable
|
|
|
|
|
|
|
|
|
|
DISPLAY.C
|
|
|
|
|
- changed DIBPIXEL4() and DIBPIXEL3() define, generates the same
|
|
|
|
|
code on MSVC6.0 but made it GCC4 compiler compatible
|
|
|
|
|
|
|
|
|
|
DISRPL.C
|
|
|
|
|
- changed function RplCreateObjView(), defined end pointer also as
|
|
|
|
|
constant
|
|
|
|
|
|
|
|
|
|
EMU48.C
|
|
|
|
|
- added property sheet page handlers SettingsGeneralProc(),
|
|
|
|
|
SettingsMemoryProc() and SettingsPeripheralProc()
|
|
|
|
|
- removed function SettingsProc(), replaced by the property sheet
|
|
|
|
|
page handler functions
|
|
|
|
|
- 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
|
|
|
|
|
- added function PropSheetProc(), callback function for setup the
|
|
|
|
|
property sheet
|
|
|
|
|
- changed function OnViewSettings(), now creating a propery sheet
|
|
|
|
|
instead of a settings dialog
|
|
|
|
|
- changed function MainWndProc(), made correct type cast to argument
|
|
|
|
|
of function OnDropFiles()
|
|
|
|
|
- changed function WinMain(), replaced multiple class name usage
|
|
|
|
|
with atom variable, moved read settings before window creation,
|
|
|
|
|
and added check for setting "SingleInstance" to switch to an
|
|
|
|
|
already running program instance instead of creating a new one
|
|
|
|
|
|
|
|
|
|
EMU48.H
|
|
|
|
|
- extern declaration of global variable and function
|
|
|
|
|
|
|
|
|
|
EMU48.RC
|
|
|
|
|
- split IDD_SETTINGS dialog into the property pages IDD_SET_GENERAL,
|
|
|
|
|
IDD_SET_MEMORY and IDD_SET_PERIPHERAL and added item
|
|
|
|
|
"Single Instance" in the "General" property page
|
|
|
|
|
- removed IDD_SETTINGS dialog
|
|
|
|
|
- changed version and copyright
|
|
|
|
|
|
|
|
|
|
FILES.C
|
|
|
|
|
- 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
|
|
|
|
|
- bugfix in function ParseString(), decoding the \" sequence as
|
|
|
|
|
quotation mark inside a string was incomplete, so every single '\'
|
|
|
|
|
character was also removed
|
|
|
|
|
|
|
|
|
|
MRU.C
|
|
|
|
|
- changed function MruUpdateMenu(), changed variable type of
|
|
|
|
|
variable hMenu
|
|
|
|
|
- changed function MruReadList(), removed initialized but unused
|
|
|
|
|
variable
|
|
|
|
|
|
|
|
|
|
RESOURCE.H
|
|
|
|
|
- removed IDD_SETTINGS definition
|
|
|
|
|
- added some definitions
|
|
|
|
|
|
|
|
|
|
SETTINGS.C
|
|
|
|
|
- changed function ReadSettings(), moved 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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Service Pack 51 for Emu48 Version 1.0
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
EMU48.C
|
|
|
|
|
- removed global variable hHeap
|
|
|
|
|
- replaced all HeapAlloc() with malloc() memory requests
|
|
|
|
|
- changed function SettingsProc(), added infrared printer settings
|
|
|
|
|
- changed function SaveChanges(), detect if document is available
|
|
|
|
|
now over the variable bDocumentAvail and not over the variable
|
|
|
|
|
pbyRom any more; in the case of an illegal KML script there maybe
|
|
|
|
|
a document loaded, but no ROM image, so pbyRom will be NULL in
|
|
|
|
|
this case
|
|
|
|
|
- renamed function UpdateWindowStatus() to OnInitMenu() and modified
|
|
|
|
|
it to a WM_INITMENU message handler
|
|
|
|
|
- changed function OnFileNew() and WinMain(), removed all
|
|
|
|
|
UpdateWindowStatus() function calls
|
|
|
|
|
- bugfix function OnViewScript(), when quitted the dialog "Choose
|
|
|
|
|
Your KML Script" with the Cancel button when chosen an invalid
|
|
|
|
|
script the function returned without the possibility of saving the
|
|
|
|
|
current document; now the function try to reload the primarily KML
|
|
|
|
|
script and if this also fails then the current document is saved
|
|
|
|
|
- changed function MainWndProc(), added WM_INITMENU message handler
|
|
|
|
|
and call of _CrtDumpMemoryLeaks() at end of program to detect
|
|
|
|
|
malloc() memory leaks
|
|
|
|
|
|
|
|
|
|
EMU48.DSP
|
|
|
|
|
- changed the resource natural language to English
|
|
|
|
|
- added redeye.c and udp.c sources
|
|
|
|
|
- added library Ws2_32.lib
|
|
|
|
|
|
|
|
|
|
EMU48.H
|
|
|
|
|
- removed extern declaration of hHeap
|
|
|
|
|
- extern declaration of global variables and functions
|
|
|
|
|
- removed declaration of global function UpdateWindowStatus()
|
|
|
|
|
- replaced all HeapAlloc() with malloc() memory requests
|
|
|
|
|
|
|
|
|
|
EMU48.RC
|
|
|
|
|
- changed version and copyright
|
|
|
|
|
|
|
|
|
|
ENGINE.C
|
|
|
|
|
- added global variable nOpcSlow to hold the number of CPU opcodes
|
|
|
|
|
slowing down the CPU core
|
|
|
|
|
- changed function AdjustSpeed(), added CPU opcode slow down
|
|
|
|
|
implementation
|
|
|
|
|
- added function InitAdjustSpeed(), initialize CPU slow down part
|
|
|
|
|
if necessary
|
|
|
|
|
- changed function AdjKeySpeed() and SetSpeed(), use function
|
|
|
|
|
InitAdjustSpeed() to initialize the CPU slow down variables
|
|
|
|
|
- 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 TREENODE structure, added prev element for a double linked
|
|
|
|
|
list
|
|
|
|
|
- changed function PatchNibble(), added prev element handling
|
|
|
|
|
- bugfix in function UpdatePatches(), in the case an address was
|
|
|
|
|
patched more than one time, the ROM was patched in wrong order and
|
|
|
|
|
moreover the original content of the double patched ROM address
|
|
|
|
|
was destroyed
|
|
|
|
|
- changed function CrcRom(), if no ROM available return without
|
|
|
|
|
modifying the checksum
|
|
|
|
|
- changed function MapRom(), removed using of memory mapped files
|
|
|
|
|
which has the major advantage that packed ROM files are also valid
|
|
|
|
|
now
|
|
|
|
|
- changed function UnmapRom(), adjusted to changed MapRom() function
|
|
|
|
|
- changed function ResetDocument(), OpenDocument(),
|
|
|
|
|
SaveDocumentAs(), SaveBackup(), RestoreBackup() and ResetBackup(),
|
|
|
|
|
removed all UpdateWindowStatus() function calls
|
|
|
|
|
- changed function ResetDocument(), NewDocument(), OpenDocument()
|
|
|
|
|
and RestoreBackup(), added state variable if document is available
|
|
|
|
|
- bugfix in function OpenDocument(), added check of KML script name
|
|
|
|
|
length against target buffer size
|
|
|
|
|
- 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
|
|
|
|
|
|
|
|
|
|
I28F160.C
|
|
|
|
|
- added functions WrDirtyPage(), EraseBlock(), WriteByte() and
|
|
|
|
|
ReadByte() for access to the ROM buffer
|
|
|
|
|
- changed function WrStateE8C(), WrState40D(), WrState20C(),
|
|
|
|
|
WrState30C() and RdStateData(), changed implementation using the
|
|
|
|
|
new ROM buffer access functions
|
|
|
|
|
|
|
|
|
|
IO.H
|
|
|
|
|
- added LBR and LBO bit definitions
|
|
|
|
|
|
|
|
|
|
KEYMACRO.C
|
|
|
|
|
- changed function OnToolMacroNew(), OnToolMacroPlay() and
|
|
|
|
|
OnToolMacroStop(), removed all UpdateWindowStatus() function calls
|
|
|
|
|
- changed function EventThread(), added minimum key hold time for
|
|
|
|
|
keyboard macro playing and subtract minimum key hold time from
|
|
|
|
|
saved waiting time, this is more accurate when the user has
|
|
|
|
|
selected a different minimum key hold time than the default one
|
|
|
|
|
- changed function KeyMacroRecord(), now saving the complete waiting
|
|
|
|
|
time including the key state holding time, the key state holding
|
|
|
|
|
time is now subtract in the player function thread EventThread()
|
|
|
|
|
- changed function OnToolMacroNew(), removed adding the key state
|
|
|
|
|
holding time to the reference time, this is not necessary any more
|
|
|
|
|
|
|
|
|
|
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 ReadT2Acc(), reading timer2 value with checking for
|
|
|
|
|
CPU speed measurement behaviour
|
|
|
|
|
- bugfix in function ReadIO(), added implementation of the LED and
|
|
|
|
|
ELBE bit in the LCR (0x11C) register and of the LBO bit in the LBR
|
|
|
|
|
(0x11D) register
|
|
|
|
|
- changed function ReadIO(), the timer2 register content is now read
|
|
|
|
|
by function ReadT2Acc() to analyze the read access scheme
|
|
|
|
|
- bugfix in function WriteIO(), added implementation of the ELBE bit
|
|
|
|
|
in the LCR (0x11C) register and of the LBO bit in the LBR (0x11D)
|
|
|
|
|
register
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
PCH.H
|
|
|
|
|
- added include winsock2.h
|
|
|
|
|
|
|
|
|
|
REDEYE.C
|
|
|
|
|
- new module for decoding the redeye data stream for a HP82240B
|
|
|
|
|
printer
|
|
|
|
|
|
|
|
|
|
RESOURCE.H
|
|
|
|
|
- added some definitions
|
|
|
|
|
|
|
|
|
|
RPL.C
|
|
|
|
|
- replaced all HeapAlloc() with malloc() memory requests
|
|
|
|
|
|
|
|
|
|
SETTINGS.C
|
|
|
|
|
- changed function ReadSettings() and WriteSettings(), added item
|
|
|
|
|
"KeyMinDelay" in section [Macro] and the items "Address" and
|
|
|
|
|
"Port" in section [IrPrinter] in the INI-File
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
UDP.C
|
|
|
|
|
- new module for sending a byte over UDP
|
|
|
|
|
|
|
|
|
|
|
2024-03-19 23:35:30 +01:00
|
|
|
|
Service Pack 50 for Emu48 Version 1.0
|
|
|
|
|
|
|
|
|
|
DEBUGGER.C
|
|
|
|
|
- changed table MemMap[], replaced Chipset_t memory pointer Port0,
|
|
|
|
|
Port1 and Port2 by new variables
|
|
|
|
|
|
|
|
|
|
DISASM.C
|
|
|
|
|
- changed function rn_ram(), rn_port1() and rn_port2(), replaced
|
|
|
|
|
Chipset_t memory pointers Port0, Port1 and Port2 by new variables
|
|
|
|
|
|
|
|
|
|
DISRPL.C
|
|
|
|
|
- cosmetic changes
|
|
|
|
|
|
|
|
|
|
EMU48.C
|
|
|
|
|
- changed function Disasm(), added if opcode should be interpreted
|
|
|
|
|
as PCO
|
|
|
|
|
|
|
|
|
|
EMU48.H
|
|
|
|
|
- extern declaration of global variables
|
|
|
|
|
- added RplGetName(a) definition for DLL version linking
|
|
|
|
|
|
|
|
|
|
EMU48.RC
|
|
|
|
|
- changed IDD_DEBUG_SETTINGS, replaced "Ok" with "OK" and removed
|
|
|
|
|
accelerator keys from "OK" and "Cancel"
|
|
|
|
|
- changed IDR_DEBUG_MEM, added several accelerator keys
|
|
|
|
|
- changed version and copyright
|
|
|
|
|
|
|
|
|
|
ENGINE.C
|
|
|
|
|
- changed function WorkerThread(), replaced structure Chipset_t
|
|
|
|
|
element Port2 by new variable
|
|
|
|
|
|
|
|
|
|
FILES.C
|
|
|
|
|
- added global variables to hold the memory module pointer prior
|
|
|
|
|
located in the Chipset_t structure
|
|
|
|
|
- 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_t memory pointer Port0, Port1 and Port2 by new
|
|
|
|
|
variables
|
|
|
|
|
|
|
|
|
|
KML.C
|
|
|
|
|
- changed function RunLine(), removed warning when compiling for x64
|
|
|
|
|
architecture
|
|
|
|
|
- changed function InitKML(), pointed out that a packed ROM image is
|
|
|
|
|
an error
|
|
|
|
|
|
|
|
|
|
MOPS.C
|
|
|
|
|
- changed function MapP0(), MapP1() and MapP2(), replaced Chipset_t
|
|
|
|
|
memory pointer Port0, Port1 and Port2 by new variables
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
- 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
|
|
|
|
|
- enabled WinXP style under VS2005, VS2008 and VS2010
|
|
|
|
|
|
|
|
|
|
RPL.C
|
|
|
|
|
- changed function Metakernel(), replaced structure Chipset_t
|
|
|
|
|
element Port1 by new variable
|
|
|
|
|
|
|
|
|
|
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()
|
|
|
|
|
|
|
|
|
|
TIMER.C
|
|
|
|
|
- changed function SetHP48Time(), replaced structure Chipset_t
|
|
|
|
|
element Port0 by new variable
|
|
|
|
|
|
|
|
|
|
TYPES.H
|
|
|
|
|
- changed structure Chipset_t, replaced Port0, Port1 and Port2 with
|
|
|
|
|
a DWORD placeholder each, because when compiling for x64
|
|
|
|
|
architecture these 3 byte pointers grow up to 8 bytes and destroy
|
|
|
|
|
the state file structure
|
|
|
|
|
|
|
|
|
|
|
2024-03-19 23:35:29 +01:00
|
|
|
|
Service Pack 49 for Emu48 Version 1.0
|
|
|
|
|
|
|
|
|
|
DISRPL.C
|
|
|
|
|
- bugfix in function BCDx(), detection for exponent writing was
|
|
|
|
|
wrong -> on negative exponents sometimes the result format was
|
|
|
|
|
wrong, on positive exponents sometimes the result itself was wrong
|
|
|
|
|
|
|
|
|
|
EMU48.C
|
|
|
|
|
- changed function OnFileMruOpen(), on success move selected entry
|
|
|
|
|
to top of MRU table
|
|
|
|
|
|
|
|
|
|
EMU48.DSP
|
|
|
|
|
- changed to REGISTRY (HKCU/Software/Emu48) saving
|
|
|
|
|
|
|
|
|
|
EMU48.H
|
|
|
|
|
- extern declaration of global variable and function
|
|
|
|
|
|
|
|
|
|
EMU48.RC
|
|
|
|
|
- changed version
|
|
|
|
|
|
|
|
|
|
MRU.C
|
|
|
|
|
- changed function MruAdd(), added entry moving to top when the
|
|
|
|
|
entry is already in the table
|
|
|
|
|
- added function MruMoveTop(), move MRU entry to top of table
|
|
|
|
|
|
|
|
|
|
STACK.C
|
|
|
|
|
- bugfix in function RPL_GetBcd(), detection for exponent writing
|
|
|
|
|
was wrong -> on negative exponents sometimes the result format was
|
|
|
|
|
wrong, on positive exponents from E12 until E14 with 12 digit
|
|
|
|
|
mantissa setting the result itself was wrong
|
|
|
|
|
- added helper functions RPL_GetComplex() and RPL_SetComplex() to
|
|
|
|
|
handle complex number objects
|
|
|
|
|
- added function DoComplex() to handle a complex number object
|
|
|
|
|
- changed function OnStackCopy(), added complex number support
|
|
|
|
|
- changed function OnStackPaste(), added flag to disable automatic
|
|
|
|
|
clipboard object detection and added complex number support
|
|
|
|
|
|
|
|
|
|
|
2024-03-19 23:35:29 +01:00
|
|
|
|
Service Pack 48 for Emu48 Version 1.0
|
|
|
|
|
|
|
|
|
|
DDESERV.C
|
|
|
|
|
- bugfix in function DdeCallback(), readded delay at XTYP_POKE after
|
|
|
|
|
ON key state change switching calculator on, bug introduced in
|
|
|
|
|
SP37 and made ON key hold time variable
|
|
|
|
|
|
|
|
|
|
DEBUGGER.C
|
|
|
|
|
- added backup breakpoint list
|
|
|
|
|
- added function LoadSymbTable(), loading symbol table defined in
|
|
|
|
|
INI-File
|
|
|
|
|
- added function GetMemCurAddr(), get address of cursor in memory
|
|
|
|
|
window
|
|
|
|
|
- changed function ViewCodeWnd(), function now returns the line
|
|
|
|
|
number with the pc, adjusted address to Saturn address area, added
|
|
|
|
|
label line if address is a known entry and added a check if the 5
|
|
|
|
|
nibble sequence on an address should be interpreted as PCO
|
|
|
|
|
- changed function ViewCodeWnd() and InfoIntr(), adjusted to new
|
|
|
|
|
prototype of function disassemble()
|
|
|
|
|
- changed function UpdateCodeWnd(), if pc should shown at first line
|
|
|
|
|
but the pc is the begin of a PCO, show PCO address as first line
|
|
|
|
|
instead, added handling for label line
|
|
|
|
|
- changed function OnKeyF5(), for label line support changed
|
|
|
|
|
detection of PC line
|
|
|
|
|
- changed function OnCodeGoAdr(), removed limitation to Saturn
|
|
|
|
|
address area, limitation now done in function ViewCodeWnd()
|
|
|
|
|
- added function OnKeyPlusMinus(), +/- key handler for memory window
|
|
|
|
|
- changed function OnKeyCodeWnd(), added handling for label line and
|
|
|
|
|
removed limitation going back before address 0
|
|
|
|
|
- changed function OnDrawCodeWnd(), added draw style for label line
|
|
|
|
|
- changed function Debugger(), added initialization and
|
|
|
|
|
uninitialization of symbol table and bold font, added +/- key
|
|
|
|
|
handling for memory window, added Debugger Settings to the system
|
|
|
|
|
menu and added call of "RPL Object Viewer" handling function
|
|
|
|
|
- changed function OnFindOK(), in the case of a search match update
|
|
|
|
|
also the RPL object viewer window
|
|
|
|
|
- added functions for "RPL Object Viewer" dialog box
|
|
|
|
|
- added functions for Debugger Settings handling
|
|
|
|
|
- changed function EnterAddr(), added decoding a symbolic entry into
|
|
|
|
|
an address and expanded hex address range from 6 to 8 digits
|
|
|
|
|
- changed function InfoIntr(), added label line if instruction
|
|
|
|
|
address is a known entry
|
|
|
|
|
- bugfix in function InfoWoRegister(), changed WM_COMMAND message
|
|
|
|
|
handler from IDOK to IDCANCEL to make the close button working
|
|
|
|
|
properly
|
|
|
|
|
- added functions SaveBreakpointList() and
|
|
|
|
|
CreateBackupBreakpointList() to handle the backup breakpoint list
|
|
|
|
|
|
|
|
|
|
DEBUGGER.H
|
|
|
|
|
- extern declaration of global functions
|
|
|
|
|
|
|
|
|
|
DISASM.C
|
|
|
|
|
- added variable disassembler_symb to enable symbolic address
|
|
|
|
|
disassembly
|
|
|
|
|
- changed function read_nibble(), made function public
|
|
|
|
|
- changed function append_imm_nibble(), if the immediate data is 5
|
|
|
|
|
nibbles long and the decoded data is a known symbolic entry, show
|
|
|
|
|
the symbolic name instead of the data
|
|
|
|
|
- added new function append_numaddr(), numeric output of an address
|
|
|
|
|
- changed function append_addr(), if the address is a known symbolic
|
|
|
|
|
entry, show the symbolic name instead of the address
|
|
|
|
|
- bugfix in function append_r_addr(), in some rare conditions the
|
|
|
|
|
program counter value got larger than 0xFFFFF, if the calculated
|
|
|
|
|
absolute address is a known symbolic entry show the symbolic name
|
|
|
|
|
instead of the relative address, in the case of showing the
|
|
|
|
|
relative address the corresponding absolute address is now printed
|
|
|
|
|
by this function and not by the function append_pc_comment(), so
|
|
|
|
|
there's no difference between VIEW_SHORT and VIEW_LONG any more
|
|
|
|
|
- removed function append_pc_comment(), implementation is obsolete
|
|
|
|
|
now because absolute address printing is now done in function
|
|
|
|
|
append_r_addr()
|
|
|
|
|
- changed function disasm_8() and disassemble(), changed function
|
|
|
|
|
prototypes by removing the view argument
|
|
|
|
|
|
|
|
|
|
DISPLAY.C
|
|
|
|
|
- made global variable public static
|
|
|
|
|
- changed DIBPIXEL4() define, generates the same code on MSVC6.0 but
|
|
|
|
|
made it GCC compiler compatible
|
|
|
|
|
|
|
|
|
|
DISRPL.C
|
|
|
|
|
- new module for RPL object decoding
|
|
|
|
|
|
|
|
|
|
DISRPL.H
|
|
|
|
|
- header file for RPL object decoding part
|
|
|
|
|
|
|
|
|
|
EMU48.C
|
|
|
|
|
- bugfix in function OnDropFiles() and OnObjectLoad(), readded
|
|
|
|
|
delay after ON key state change switching calculator on, bug
|
|
|
|
|
introduced in SP37 and made ON key hold time variable
|
|
|
|
|
- changed function OnObjectLoad(), changed load object warning
|
|
|
|
|
message
|
|
|
|
|
- changed function Disasm(), adjusted to new prototype of function
|
|
|
|
|
disassemble()
|
|
|
|
|
- changed function WinMain(), added non modal "RPL Object Viewer"
|
|
|
|
|
dialog box in main message handler
|
|
|
|
|
- bugfix in function WinMain(), getting the full path name of the
|
|
|
|
|
current state file failed in the case of an empty name buffer
|
|
|
|
|
|
|
|
|
|
EMU48.DSP
|
|
|
|
|
- added disrpl.c and symbfile.c sources
|
|
|
|
|
|
|
|
|
|
EMU48.H
|
|
|
|
|
- removed extern declaration of pbyLcd
|
|
|
|
|
- removed VIEW_SHORT and VIEW_LONG definition
|
|
|
|
|
- changed function prototypes
|
|
|
|
|
- extern declaration of global variables and functions
|
|
|
|
|
|
|
|
|
|
EMU48.RC
|
|
|
|
|
- changed IDD_WRITEONLYREG, changed ID of OK control from IDOK to
|
|
|
|
|
IDCANCEL
|
|
|
|
|
- changed IDD_SETTINGS, replaced "Ok" with "OK" and removed
|
|
|
|
|
accelerator keys from "OK" and "Cancel"
|
|
|
|
|
- added dialogs IDD_DEBUG_SETTINGS and IDD_RPLVIEW
|
|
|
|
|
- added "Rpl Object Viewer..." menu entry in debugger "Memory"
|
|
|
|
|
context menu
|
|
|
|
|
- changed version and copyright
|
|
|
|
|
|
|
|
|
|
FILES.C
|
|
|
|
|
- changed function GetCutPathName(), removed warning when compiling
|
|
|
|
|
for x64 architecture
|
|
|
|
|
- changed function IsDataPacked(), made a DWORD pointer copy of the
|
|
|
|
|
VOID pointer argument to avoid type casting, this generates the
|
|
|
|
|
same code on MSVC6.0 but made it GCC compiler compatible
|
|
|
|
|
- bugfix in function OpenDocument(), if document reload was refused
|
|
|
|
|
the function returned no success -> this caused trouble in
|
|
|
|
|
function OnFileMruOpen() removing the MRU entry of this document
|
|
|
|
|
- bugfix in function SaveBackup(), a backup of the debugger
|
|
|
|
|
breakpoint list wasn't created
|
|
|
|
|
- bugfix in function RestoreBackup(), the debugger breakpoint list
|
|
|
|
|
wasn't restored so the breakpoints got lost when saving the state
|
|
|
|
|
file and added preserving debugger open state, this feature was
|
|
|
|
|
lost as a result of a bugfix in an earlier version
|
|
|
|
|
- changed function GetOpenFilename(), added file filter for all
|
|
|
|
|
Emu48 specific filenames which is default, changed filter names
|
|
|
|
|
and removed model specific file extension selection
|
|
|
|
|
- changed function GetSaveAsFilename(), changed filter names and use
|
|
|
|
|
small size characters for file extensions
|
|
|
|
|
- added function DecodeBmp(), contain the BMP image file decoder
|
|
|
|
|
prior located in function LoadBitmapFile() and added check of
|
|
|
|
|
bitmap file size
|
|
|
|
|
- added functions ReadGifByte(), ReadGifWord() and DecodeGif() for
|
|
|
|
|
decoding GIF image files
|
|
|
|
|
- bugfix in function LoadBitmapFile(), check for a valid file handle
|
|
|
|
|
was missing, moved BMP image file decoder to function DecodeBmp()
|
|
|
|
|
and added GIF image file support
|
|
|
|
|
|
|
|
|
|
KEYBOARD.C
|
|
|
|
|
- changed function KeyboardEvent(), made key switch time variable
|
|
|
|
|
|
|
|
|
|
KML.C
|
|
|
|
|
- changed szText variable qualifier from LPTSTR to LPCTSTR
|
|
|
|
|
- added keyword "IfMem" to pLexToken[] table
|
|
|
|
|
- added token TOK_IFMEM to eIsBlock[] table
|
|
|
|
|
- changed function CreateKmlList(), adjusted to new prototype of
|
|
|
|
|
function GetStringParam()
|
|
|
|
|
- added function UpdateScriptList(), filling the KML script combo
|
|
|
|
|
box with all found script titles and select the current used one
|
|
|
|
|
- changed function ChooseKMLProc(), call function UpdateScriptList()
|
|
|
|
|
to update the KML script combo box now
|
|
|
|
|
- removed function FatalError()
|
|
|
|
|
- bugfix in function ParseToken(), modifying the
|
|
|
|
|
script buffer content isn't allowed
|
|
|
|
|
- changed function InitLex(), adjusted to constant pointer of
|
|
|
|
|
variable szText
|
|
|
|
|
- bugfix in function ParseString(), replaced error text
|
|
|
|
|
- bugfix in function IncludeLines(), removed fatal error message
|
|
|
|
|
text and adjusted to constant pointer of variable szText
|
|
|
|
|
- bugfix in function ParseLines(), in some cases parsing hadn't
|
|
|
|
|
stopped with an error inside a block with an unreferenced include
|
|
|
|
|
file and removed a fatal error message text
|
|
|
|
|
- bugfix in function ParseBlock(), block argument checking generated
|
|
|
|
|
wrong error messages in the case of syntax errors
|
|
|
|
|
- bugfix in function IncludeBlocks(), removed fatal error message
|
|
|
|
|
text and adjusted to constant pointer of variable szText
|
|
|
|
|
- changed function ParseBlocks(), removed "Invalid block." message
|
|
|
|
|
text and made some code optimizations calling the function
|
|
|
|
|
FatalError()
|
|
|
|
|
- changed function InitGlobal(), changed some punctuation and
|
|
|
|
|
capital letters
|
|
|
|
|
- changed function InitButton(), source code improvement checking
|
|
|
|
|
the size of button array
|
|
|
|
|
- changed function RunLine(), added implementation of "IfMem"
|
|
|
|
|
command
|
|
|
|
|
- changed function GetStringParam(), changed return variable
|
|
|
|
|
qualifier from LPTSTR to LPCTSTR
|
|
|
|
|
- bugfix in function ReloadButtons(), global variable bKeyPressed
|
|
|
|
|
wasn't updated
|
|
|
|
|
|
|
|
|
|
KML.H
|
|
|
|
|
- added TOK_IFMEM definition
|
|
|
|
|
|
|
|
|
|
PCH.H
|
|
|
|
|
- added INVALID_SET_FILE_POINTER definition
|
|
|
|
|
|
|
|
|
|
RESOURCE.H
|
|
|
|
|
- added definitions for Debugger Settings and RPL object viewer
|
|
|
|
|
handling
|
|
|
|
|
|
|
|
|
|
RPL.C
|
|
|
|
|
- renamed definition DOEREAL to DOEREL and adjusted usage in
|
|
|
|
|
function RPL_SkipOb() and RPL_ObjectSize()
|
|
|
|
|
- bugfix in function RPL_SkipOb() and RPL_ObjectSize(), the object
|
|
|
|
|
at address 0x02BAA was always interpreted as =DOACPTR, a
|
|
|
|
|
constant-length object consisting of two 5-nibble addresses, on
|
|
|
|
|
the HP48S series the object is interpreted as =DOEXT1, an object
|
|
|
|
|
with 5-nibble length information followed by data
|
|
|
|
|
|
|
|
|
|
SETTINGS.C
|
|
|
|
|
- changed function ReadSettings() and WriteSettings(), added item
|
|
|
|
|
"Symbolic" in section [Disassembler] and added items "WakeupDelay"
|
|
|
|
|
and "KeyMinDelay" in section [Emulator] in the INI-File
|
|
|
|
|
|
|
|
|
|
STACK.C
|
|
|
|
|
- bugfix in function OnStackPaste(), readded delay after ON key
|
|
|
|
|
state change switching calculator on and made ON key hold time
|
|
|
|
|
variable
|
|
|
|
|
|
|
|
|
|
SYMBFILE.C
|
|
|
|
|
- new module for loading external symbols from a Saturn3 linker file
|
|
|
|
|
|
|
|
|
|
|
2024-03-19 23:35:29 +01:00
|
|
|
|
Service Pack 47 for Emu48 Version 1.0
|
|
|
|
|
|
|
|
|
|
DDESERV.C
|
|
|
|
|
- bugfix in function DdeCallback(), readded delay after ON key state
|
|
|
|
|
change, bug introduced in SP37
|
|
|
|
|
|
|
|
|
|
DEBUGGER.C
|
|
|
|
|
- changed function OnLButtonUp(), NewValue(), EnterAddr() and
|
|
|
|
|
EnterBreakpoint(), replaced WM_GETTEXT message call with function
|
|
|
|
|
GetWindowText()
|
|
|
|
|
|
|
|
|
|
DISASM.C
|
|
|
|
|
- bugfix in function disassemble(), the NOP5 opcode returned wrong
|
|
|
|
|
address for next instruction (GOTO opcode skipping one nibble)
|
|
|
|
|
|
|
|
|
|
EMU48.C
|
|
|
|
|
- changed function SettingsProc(), adjusted to new prototype of
|
|
|
|
|
function GetLoadObjectFilename(), use (*.BIN) as default file
|
|
|
|
|
filter now
|
|
|
|
|
- changed function OnPaint(), removed mixture of BitBlt() calls with
|
|
|
|
|
argument hPaintDC and hWindowDC inside critical section
|
|
|
|
|
- changed function OnFileClose(), removed call of DisableDebugger()
|
|
|
|
|
because it's now done in function ResetDocument()
|
|
|
|
|
- bugfix in function OnDropFiles() and OnObjectLoad(), readded delay
|
|
|
|
|
after ON key state change, bug introduced in SP37
|
|
|
|
|
- changed function OnObjectLoad() and OnObjectSave(), adjusted to
|
|
|
|
|
new prototype of function GetLoadObjectFilename() and
|
|
|
|
|
GetSaveObjectFilename(), use (*.HP;*.LIB) as default file filter
|
|
|
|
|
now
|
|
|
|
|
|
|
|
|
|
EMU48.H
|
|
|
|
|
- added file filter definitions
|
|
|
|
|
- extern declaration of global variable and function
|
|
|
|
|
- changed function prototypes
|
|
|
|
|
|
|
|
|
|
EMU48.RC
|
|
|
|
|
- changed name order in copyright messages
|
|
|
|
|
- changed version and copyright
|
|
|
|
|
|
|
|
|
|
EXTERNAL.C
|
|
|
|
|
- removed inline function Return(), replaced by a rstkpop() call
|
|
|
|
|
- added function Beeper() for beeping without taking care about
|
|
|
|
|
the different beeping methods
|
|
|
|
|
- added function RCKBp() simulating the ROM Check Beep
|
|
|
|
|
|
|
|
|
|
FILES.C
|
|
|
|
|
- changed function ResetDocument(), added call of DisableDebugger()
|
|
|
|
|
- changed function GetOpenFilename() and GetSaveAsFilename(),
|
|
|
|
|
removed some NULL characters at end of file filter definition
|
|
|
|
|
string
|
|
|
|
|
- changed function GetLoadObjectFilename() and
|
|
|
|
|
GetSaveObjectFilename(), changed function prototype, added
|
|
|
|
|
arguments for the file filter and the default extention
|
|
|
|
|
|
|
|
|
|
I28F160.C
|
|
|
|
|
- adjusted implementation to the new bit array of the block lock
|
|
|
|
|
table
|
|
|
|
|
|
|
|
|
|
I28F160.H
|
|
|
|
|
- changed structure WSMset_t, replaced byte array byLockCnfg[32]
|
|
|
|
|
with the bit array dwLockCnfg variable
|
|
|
|
|
|
|
|
|
|
KEYMACRO.C
|
|
|
|
|
- changed function OnToolMacroNew() and OnToolMacroPlay(), removed
|
|
|
|
|
some NULL characters at end of file filter definition string
|
|
|
|
|
|
|
|
|
|
KML.C
|
|
|
|
|
- changed function GetStringOf(), changed for better reading
|
|
|
|
|
- changed function SkipWhite(), optimized and better readable
|
|
|
|
|
implementation
|
2024-03-19 23:35:29 +01:00
|
|
|
|
- bugfix in function ParseToken(), optimized string delimiter
|
2024-03-19 23:35:29 +01:00
|
|
|
|
searching among other optimizations and removed increment of line
|
|
|
|
|
counter on LF character to correct the line numbering on UNIX
|
|
|
|
|
files with LF instead of CR LF at line end -> line counter
|
|
|
|
|
increment is done in function SkipWhite() on decoding next keyword
|
|
|
|
|
in function Lex()
|
|
|
|
|
- changed function ParseLine(), replaced main loop "goto" construct
|
|
|
|
|
|
|
|
|
|
LOWBAT.C
|
|
|
|
|
- bugfix in function StartBatMeasure(), creating the battery
|
|
|
|
|
watching thread wasn't Win9x compatible
|
|
|
|
|
- changed function GetBatteryState(), added possibility to disable
|
|
|
|
|
low battery detection
|
|
|
|
|
|
|
|
|
|
SETTINGS.C
|
|
|
|
|
- changed function ReadSettings() and WriteSettings(), added item
|
|
|
|
|
"Disable" in section [LowBat] in the INI-File
|
|
|
|
|
|
|
|
|
|
STACK.C
|
|
|
|
|
- bugfix in function OnStackPaste(), readded delay after ON key
|
|
|
|
|
state change, bug introduced in SP37
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Service Pack 46 for Emu48 Version 1.0
|
|
|
|
|
|
|
|
|
|
EMU48.C
|
|
|
|
|
- bugfix in function SaveChanges(), returned wrong ID when function
|
|
|
|
|
GetSaveAsFilename() returned FALSE, bug introduced in SP45
|
|
|
|
|
- bugfix in function WinMain(), in some cases only file short names
|
|
|
|
|
had been written as last document
|
|
|
|
|
|
|
|
|
|
EMU48.RC
|
|
|
|
|
- changed version
|
|
|
|
|
|
|
|
|
|
|
2024-03-19 23:35:29 +01:00
|
|
|
|
Service Pack 45 for Emu48 Version 1.0
|
|
|
|
|
|
|
|
|
|
EMU48.C
|
|
|
|
|
- bugfix in function SaveChanges(), function GetSaveAsFilename()
|
2024-03-19 23:35:29 +01:00
|
|
|
|
returns a boolean and not a button ID and removed call of last
|
2024-03-19 23:35:29 +01:00
|
|
|
|
document saving
|
|
|
|
|
- changed function OnFileOpen(), added MruAdd() call
|
|
|
|
|
- added new function OnFileMruOpen(), command handler for MRU menu
|
|
|
|
|
selections
|
|
|
|
|
- bugfix in function OnFileSaveAs(), function GetSaveAsFilename()
|
2024-03-19 23:35:29 +01:00
|
|
|
|
returns a boolean and not a button ID, minor optimizations,
|
2024-03-19 23:35:29 +01:00
|
|
|
|
removed call of last document saving and added MruAdd() call
|
|
|
|
|
- changed function OnObjectSave(), minor optimization
|
|
|
|
|
- changed function MainWndProc(), added MRU message handler
|
|
|
|
|
- changed function WinMain(), added MRU handling and added last
|
|
|
|
|
document saving at end of program
|
|
|
|
|
|
|
|
|
|
EMU48.DSP
|
|
|
|
|
- added mru.c sources
|
|
|
|
|
|
|
|
|
|
EMU48.H
|
|
|
|
|
- extern declaration of global functions
|
|
|
|
|
|
|
|
|
|
EMU48.RC
|
|
|
|
|
- added Menuitem Files "Recent Files..."
|
|
|
|
|
- changed version
|
|
|
|
|
|
|
|
|
|
MRU.C
|
|
|
|
|
- new module for MRU routines
|
|
|
|
|
|
|
|
|
|
RESOURCE.H
|
|
|
|
|
- added definition for MRU handling
|
|
|
|
|
|
|
|
|
|
SETTINGS.C
|
|
|
|
|
- added function DelReg() for deleting a registry item
|
|
|
|
|
- added functions ReadSettingsString(), WriteSettingsString(),
|
|
|
|
|
ReadSettingsInt(), WriteSettingsInt() and DelSettingsKey(),
|
|
|
|
|
universal settings interface used for MRU data handling
|
|
|
|
|
|
|
|
|
|
TIMER.C
|
|
|
|
|
- bugfix in function TimeProc(), under certain conditions this
|
|
|
|
|
function is called with a zero uEventId and this may clash with a
|
|
|
|
|
reset timer event identifier
|
|
|
|
|
|
|
|
|
|
|
2024-03-19 23:35:29 +01:00
|
|
|
|
Service Pack 44 for Emu48 Version 1.0
|
|
|
|
|
|
|
|
|
|
DEBUGGER.C
|
|
|
|
|
- added new function OnSetCursor(), message handler for
|
|
|
|
|
"Activation Follows Mouse" implementation
|
|
|
|
|
- changed function Debugger(), added "Always On Top" and
|
|
|
|
|
"Activation Follows Mouse" handling
|
|
|
|
|
- bugfix in function OnToolDebug(), argument for owner window handle
|
|
|
|
|
was wrong, but over the years I has liked this debugger dialog
|
|
|
|
|
behavior so I put in the correct argument for this behavior
|
|
|
|
|
|
|
|
|
|
DISASM.C
|
|
|
|
|
- disabled automatic inline code
|
|
|
|
|
- fixed source file formatting error
|
|
|
|
|
- changed function append_field(), defined as inline code
|
|
|
|
|
- changed function append_r_addr(), code optimization
|
|
|
|
|
|
|
|
|
|
DISPLAY.C
|
|
|
|
|
- changed function ResizeWindow(), added "Always on top" feature
|
|
|
|
|
|
|
|
|
|
EMU48.C
|
|
|
|
|
- removed definition of MAXPORTS
|
|
|
|
|
- removed global variable bClassicCursor
|
|
|
|
|
- added function ForceForegroundWindow() forcing window to
|
|
|
|
|
foreground
|
|
|
|
|
- changed function SetCommList(), don't try all possible COM ports
|
|
|
|
|
any more, get current serial device list from registry
|
|
|
|
|
"HKLM\Hardware\\DeviceMap\\SerialComm" and fill both combo boxes
|
|
|
|
|
at one loop for speed up scanning
|
|
|
|
|
- changed function SettingsProc(), added "Always On Top" and
|
|
|
|
|
"Activation Follows Mouse" checkbox handling, adjusted to new CRC
|
|
|
|
|
handling of port2 and adjusted to new prototype of function
|
|
|
|
|
SetCommList()
|
|
|
|
|
- bugfix in function OnFileNew(), function SaveBackup() was called
|
|
|
|
|
when emulator engine was running -> this may caused inconsistent
|
|
|
|
|
backup data
|
|
|
|
|
- changed function OnMouseMove(), added "Activation follows mouse"
|
|
|
|
|
feature
|
|
|
|
|
- added function OnNcMouseMove() for "Activation follows mouse"
|
|
|
|
|
feature in non client area
|
|
|
|
|
- changed function MainWndProc(), added WM_NCMOUSEMOVE message
|
|
|
|
|
handler
|
|
|
|
|
- bugfix in function WinMain(), moved additional DDE stuff just
|
|
|
|
|
behind DDE server initialization, added StartupBackup handling,
|
2024-03-19 23:35:29 +01:00
|
|
|
|
adjusted length for cut filenames preventing negative values and
|
|
|
|
|
call ShowWindow() before asking for a new document preventing a
|
|
|
|
|
KML script dialog without a parent window
|
2024-03-19 23:35:29 +01:00
|
|
|
|
|
|
|
|
|
EMU48.H
|
|
|
|
|
- removed declaration of bClassicCursor
|
|
|
|
|
- extern declaration of global variables and functions
|
|
|
|
|
- changed function prototypes
|
|
|
|
|
|
|
|
|
|
EMU48.RC
|
|
|
|
|
- added item "Always On Top" and "Activation Follows Mouse" in
|
|
|
|
|
settings dialog
|
|
|
|
|
- cosmetic changes in dialog IDD_CHOOSEKML to improve WinXP style
|
|
|
|
|
- changed version
|
|
|
|
|
|
|
|
|
|
FILES.C
|
|
|
|
|
- added global variables holding the patched ROM checksum and the
|
|
|
|
|
port2 CRC
|
|
|
|
|
- changed function GetCutPathName(), better support for UNC names
|
2024-03-19 23:35:29 +01:00
|
|
|
|
- changed function SetWindowPathTitle(), adjusted length for cut
|
2024-03-19 23:35:29 +01:00
|
|
|
|
filename
|
|
|
|
|
- changed function CrcRom(), change function prototype, added
|
|
|
|
|
unpacked data check and made function public
|
|
|
|
|
- bugfix in function CrcRom(), hadn't detected address content
|
|
|
|
|
changes at addresses ending with a 0x2 and 0x3 because only lower
|
|
|
|
|
16 bit of checksum was used -> modified function cause a warmstart
|
|
|
|
|
because of new checksum
|
|
|
|
|
- changed function MapRom(), removed check for packed ROM image ->
|
|
|
|
|
a more complete check is implemented in InitKML() now
|
|
|
|
|
- changed function UnmapRom(), added reset of ROM checksum variable
|
|
|
|
|
- changed function CrcPort2(), change function prototype and added
|
|
|
|
|
unpacked data check
|
|
|
|
|
- changed function MapPort2(), added CRC calculation with saving
|
|
|
|
|
result in global variable and added unpacked data check
|
|
|
|
|
- changed function UnmapPort2(), added reset of port2 CRC variable
|
|
|
|
|
- new function IsDataPacked() for unpacked data check
|
|
|
|
|
- changed function OpenDocument(), use ROM checksum made in
|
|
|
|
|
InitKML() and port2 CRC made in MapPort2() and added checks for
|
|
|
|
|
packed memory data
|
|
|
|
|
- changed function SaveDocument(), changed document signature to
|
|
|
|
|
"Emu48 Document\xFE" without the calculator model dependent
|
|
|
|
|
variations and adjusted implementation to new prototypes of
|
|
|
|
|
CrcRom() and CrcPort2()
|
|
|
|
|
- changed function SaveBackup(), added assertion for checking
|
|
|
|
|
emulator engine state
|
|
|
|
|
- bugfix in function GetSaveAsFilename(), removed "Win48 Document"
|
|
|
|
|
from filter list because Emu48 cannot create such a document
|
|
|
|
|
- changed function WriteStack(), adjusted to new prototype of
|
|
|
|
|
function RPL_ObjectSize() and added new error state for bad
|
|
|
|
|
objects
|
|
|
|
|
- changed function LoadObject(), added error message for bad objects
|
|
|
|
|
|
|
|
|
|
KML.C
|
|
|
|
|
- bugfix in function KillKML(), class member variable wasn't reset
|
|
|
|
|
- changed function MouseMovesTo(), removed bClassicCursor switch
|
|
|
|
|
for using arrow cursor over button
|
|
|
|
|
- changed function InitKML(), added full check for unpacked ROM
|
|
|
|
|
image and build checksum of patched ROM
|
|
|
|
|
|
|
|
|
|
OPCODES.C
|
|
|
|
|
- changed function o83n(), o88n() and o89n(), speed optimization
|
|
|
|
|
|
|
|
|
|
OPS.H
|
|
|
|
|
- changed function Tbit0(), Tbit1(), Ta(), Tb(), Tae() and Tbe(),
|
|
|
|
|
speed optimization
|
|
|
|
|
|
|
|
|
|
PCH.H
|
|
|
|
|
- added include stddef.h
|
|
|
|
|
- restricted DWORD_PTR type definition for MSVC6.0 and earlier
|
|
|
|
|
|
|
|
|
|
RESOURCE.H
|
|
|
|
|
- added some definitions
|
|
|
|
|
|
|
|
|
|
RPL.C
|
|
|
|
|
- bugfix in RPL_ObjectSize(), changed function prototype for adding
|
|
|
|
|
buffer size parameter preventing reading outside buffer area when
|
|
|
|
|
decoding bad objects
|
|
|
|
|
|
|
|
|
|
SERIAL.C
|
|
|
|
|
- changed function CommOpen(), increased buffer size for device name
|
|
|
|
|
|
|
|
|
|
SETTINGS.C
|
|
|
|
|
- changed function ReadSettings() and WriteSettings(), added item
|
|
|
|
|
"StartupBackup" in section [Files] and item "ActFollowsMouse" and
|
|
|
|
|
"AlwaysOnTop" in section [Emulator], removed item "ClassicCursor"
|
|
|
|
|
from [KML] section in the INI-File
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Service Pack 43 for Emu48 Version 1.0
|
|
|
|
|
|
|
|
|
|
DDESERV.C
|
|
|
|
|
- removed warnings when compiling under VS2005
|
|
|
|
|
- changed function DdeCallback(), case XTYP_POKE and XTYP_REQUEST
|
|
|
|
|
now decode the item name for the stack level
|
|
|
|
|
|
|
|
|
|
DEBUGGER.C
|
|
|
|
|
- removed warnings when compiling under VS2005
|
|
|
|
|
|
|
|
|
|
DISASM.C
|
|
|
|
|
- bugfix in function disasm_8(), the ?HS=0 n opcode showed always as
|
|
|
|
|
?=0 opcode
|
|
|
|
|
|
|
|
|
|
DISPLAY.C
|
|
|
|
|
- changed function StopDisplayGray() and StopDisplayBW(), adjusted
|
|
|
|
|
to new prototype of ReadIO()
|
|
|
|
|
|
|
|
|
|
EMU48.C
|
|
|
|
|
- removed warnings when compiling under VS2005
|
|
|
|
|
- moved CF_HPOBJ definition to EMU48.H
|
|
|
|
|
- replaced function IsPort2Writeable() with IsFileWriteable()
|
|
|
|
|
- bugfix in function SettingsProc(), in case IDC_PORT2LOAD an update
|
|
|
|
|
of the port2 writeable checkbox was missing, in case IDOK a
|
|
|
|
|
changed port2 writeable checkbox made a warmstart even if there's
|
|
|
|
|
no port2 filename, changed behavior of port2 area if port2
|
|
|
|
|
filename is given by the command line argument: show actual port2
|
|
|
|
|
file in disabled port2 filename edit field now, also changes of
|
|
|
|
|
the port2 shared and writeable checkboxes have affect now
|
|
|
|
|
- changed function OnFileClose(), removed call of KillKML() because
|
|
|
|
|
will be done in ResetDocument()
|
|
|
|
|
|
|
|
|
|
EMU48.DSP
|
|
|
|
|
- added lowbat.c sources
|
|
|
|
|
|
|
|
|
|
EMU48.H
|
|
|
|
|
- added CF_HPOBJ definition from EMU48.C
|
|
|
|
|
- changed function prototypes
|
|
|
|
|
- extern declaration of global functions
|
|
|
|
|
|
|
|
|
|
EMU48.RC
|
|
|
|
|
- replaced CREATEPROCESS_MANIFEST_RESOURCE_ID definition in manifest
|
|
|
|
|
declaration by 1
|
|
|
|
|
- changed version and copyright
|
|
|
|
|
|
|
|
|
|
ENGINE.C
|
|
|
|
|
- changed function WorkerThread(), added control of battery
|
|
|
|
|
measurement thread
|
|
|
|
|
|
|
|
|
|
EXTERNAL.C
|
|
|
|
|
- changed function BeepWave(), removed VS2005 warning
|
|
|
|
|
- changed function BeepWin9x(), disabled implementation for x64
|
|
|
|
|
architecture
|
|
|
|
|
|
|
|
|
|
FILES.C
|
|
|
|
|
- changed function PatchNibble(), added saving state that ROM
|
|
|
|
|
address is patched
|
|
|
|
|
- bugfix in function UpdatePatches(), the function maybe called for
|
|
|
|
|
patching the ROM when it's already patched, in this case the patch
|
|
|
|
|
restore list was overwritten with the patched data
|
|
|
|
|
- changed function PatchRom(), removed VS2005 warning
|
|
|
|
|
- changed function MapPort2(), improved checking for valid size
|
|
|
|
|
- bugfix in function GetLoadObjectFilename(), removed call of
|
|
|
|
|
HeapFree() which was a remainder of the implementation prior to
|
|
|
|
|
SP42
|
|
|
|
|
- changed function WriteStack(), added stack level argument
|
|
|
|
|
- changed function LoadObject(), adjusted call of WriteStack() to
|
|
|
|
|
new function prototype
|
|
|
|
|
|
|
|
|
|
KEYBOARD.C
|
|
|
|
|
- bugfix in function ScanKeyboard(), if keyboard reading wasn't
|
|
|
|
|
active a released ON key wasn't cleared in the "in" register
|
|
|
|
|
|
|
|
|
|
KEYMACRO.C
|
|
|
|
|
- removed warnings when compiling under VS2005
|
|
|
|
|
- changed function OnToolMacroNew(), minor optimization writing
|
|
|
|
|
macro file header
|
|
|
|
|
|
|
|
|
|
KML.C
|
|
|
|
|
- removed warnings when compiling under VS2005
|
|
|
|
|
- changed function DisplayChooseKml(), changed return type of dialog
|
|
|
|
|
box
|
|
|
|
|
- changed function ParseLine(), change typecast of szLexString from
|
|
|
|
|
DWORD to DWORD_PTR
|
|
|
|
|
- bugfix in function TransparentCircle(), there was no radius value
|
|
|
|
|
check for preventing division by 0 and color low adjust value
|
|
|
|
|
wasn't reached because of wrong color offset divisor -> adjusted
|
|
|
|
|
LOWADJ definition to get similar output to buggy earlier version
|
|
|
|
|
|
|
|
|
|
KML.H
|
|
|
|
|
- changed variable type of nParam[] element of KmlLine structure
|
|
|
|
|
because element is also used as pointer
|
|
|
|
|
|
|
|
|
|
LOWBAT.C
|
|
|
|
|
- new module with battery measurement
|
|
|
|
|
|
|
|
|
|
MOPS.C
|
|
|
|
|
- changed function Npeek() and Nread(), adjusted to new prototype of
|
|
|
|
|
ReadIO()
|
|
|
|
|
- changed prototype of function ReadIO(), added update argument
|
|
|
|
|
- bugfix in function ReadIO(), the LPE (0x109), RBR LSB (0x114) and
|
|
|
|
|
RBR MSB (0x115) register access had to differ between peek and
|
|
|
|
|
read mode and added implementation of the LB0 and VLBI bits in the
|
|
|
|
|
LPD (0x108) and implementation of the ELBI and EVLBI bits in the
|
|
|
|
|
LPE (0x109) register
|
|
|
|
|
|
|
|
|
|
OPCODES.C
|
|
|
|
|
- bugfix in function o807(), Chipset.in register must be refreshed
|
|
|
|
|
before checking for a pressed key
|
|
|
|
|
|
|
|
|
|
PCH.H
|
|
|
|
|
- added _CRT_SECURE_NO_DEPRECATE definition
|
|
|
|
|
- added DWORD_PTR type definition
|
|
|
|
|
|
|
|
|
|
RESOURCE.H
|
|
|
|
|
- removed CREATEPROCESS_MANIFEST_RESOURCE_ID and RT_MANIFEST
|
|
|
|
|
definition
|
|
|
|
|
|
|
|
|
|
RPL.C
|
|
|
|
|
- added definition of EDITLINE
|
|
|
|
|
- added function RPL_Depth() returning stack depth
|
|
|
|
|
- changed function RPL_Pick(), added check of stack depth
|
|
|
|
|
- changed function RPL_Push(), new implementation with stack level
|
|
|
|
|
argument
|
|
|
|
|
|
|
|
|
|
STACK.C
|
|
|
|
|
- adjusted calls of RPL_Push() to new function prototype
|
|
|
|
|
- changed function RPL_SetBcd(), removed compiler warning
|
|
|
|
|
- bugfix in function OnStackPaste(), case "any other format" must be
|
|
|
|
|
treated as string and not as binary object
|
|
|
|
|
|
|
|
|
|
TIMER.C
|
|
|
|
|
- removed warnings when compiling under VS2005
|
|
|
|
|
- changed function CalcT2(), in the case of a pending timer2
|
|
|
|
|
interrupt return always the timer2 value 0xFFFFFFFF
|
|
|
|
|
|
|
|
|
|
|
2024-03-19 23:35:29 +01:00
|
|
|
|
Service Pack 42 for Emu48 Version 1.0
|
|
|
|
|
|
|
|
|
|
EMU48.C
|
|
|
|
|
- bugfix in function OnViewScript(), removed error message because
|
|
|
|
|
it's wrong when script is ok, but log report was leaved with
|
|
|
|
|
Cancel button, also if clause of error message box was never
|
|
|
|
|
reached because error message box had no Cancel button
|
|
|
|
|
- changed function OnViewScript(), added call of
|
|
|
|
|
SetWindowPathTitle() to adjust length of window title
|
|
|
|
|
- changed function WinMain(), simplified document loading at startup
|
|
|
|
|
and replaced full filename title with length cut filename
|
|
|
|
|
|
|
|
|
|
EMU48.H
|
|
|
|
|
- extern declaration of global functions
|
|
|
|
|
|
|
|
|
|
EMU48.RC
|
|
|
|
|
- changed version
|
|
|
|
|
|
|
|
|
|
FETCH.C
|
|
|
|
|
- changed function EvalOpcode(), included assertion for detecting
|
|
|
|
|
access to packed memory data
|
|
|
|
|
|
|
|
|
|
FILES.C
|
|
|
|
|
- moved function WriteStack() inside file
|
|
|
|
|
- added new function GetCutPathName(), creating a length cut
|
|
|
|
|
filename
|
|
|
|
|
- added new function SetWindowPathTitle(), replacement for calling
|
|
|
|
|
SetWindowTitle() for getting length cut filenames as title
|
|
|
|
|
- changed function OpenDocument(), SaveDocumentAs() and
|
|
|
|
|
RestoreBackup(), replaced call of function SetWindowTitle() with
|
|
|
|
|
SetWindowPathTitle()
|
|
|
|
|
- changed function GetOpenFilename(), GetSaveAsFilename(),
|
|
|
|
|
GetLoadObjectFilename() and GetSaveObjectFilename(), moved
|
|
|
|
|
storage place of local file buffer from heap to stack
|
|
|
|
|
|
|
|
|
|
I28F160.C
|
|
|
|
|
- bugfix in function WrStateE8N(), removed "Write to Buffer command
|
|
|
|
|
failed when requesting for the buffer length" code part introduced
|
|
|
|
|
in SP27; this was in reality a workaround for the actually fixed
|
|
|
|
|
Nwrite() flash access bug and illegal data length information
|
|
|
|
|
wasn't handled correctly
|
|
|
|
|
|
|
|
|
|
IO.H
|
|
|
|
|
- added DISP1CTL, LINENIBS, DISP2CTL and BAUD bit definitions
|
|
|
|
|
|
|
|
|
|
KML.C
|
|
|
|
|
- added keyword "Menubar" to pLexToken[] table -> scripts using this
|
|
|
|
|
keyword are parsed with a warning but not with a fatal error
|
|
|
|
|
- changed function CreateKmlList(), select only KML files with a
|
|
|
|
|
valid Model statement
|
|
|
|
|
- bugfix in function Lex(), EOF without LF at end of non empty line
|
|
|
|
|
wasn't detected as EOL
|
|
|
|
|
|
|
|
|
|
KML.H
|
|
|
|
|
- added TOK_MENUBAR definition
|
|
|
|
|
|
|
|
|
|
MOPS.C
|
|
|
|
|
- bugfix in function UckBit(), when UART is off then the UCK bit
|
|
|
|
|
was always cleared, but it's always set
|
|
|
|
|
- bugfix in function Npeek(), Nread() and Nwrite(), flash access
|
|
|
|
|
over a 2KB MMU boundary caused problems in some cases
|
|
|
|
|
- bugfix in function WriteIO(), race condition when clearing the SON
|
|
|
|
|
bit in the IOC (0x110) register, the UART was still working so the
|
|
|
|
|
cleared IOC (0x110), RCS (0x111), TCS (0x112), RBR (0x114,0x115)
|
|
|
|
|
and TBR (0x116,0x117) register can be overwritten by the serial
|
|
|
|
|
thread
|
|
|
|
|
|
|
|
|
|
SERIAL.C
|
|
|
|
|
- bugfix in function CommOpen(), method of port closing was illegal
|
|
|
|
|
because COM port dependent threads hadn't been stopped
|
|
|
|
|
|
|
|
|
|
|
2024-03-19 23:35:29 +01:00
|
|
|
|
Service Pack 41 for Emu48 Version 1.0
|
|
|
|
|
|
|
|
|
|
DDESERV.C
|
|
|
|
|
- bugfix in function DdeCallback(), used wrong return in XTYP_POKE
|
|
|
|
|
case for calculator models without stack
|
|
|
|
|
|
|
|
|
|
DEBUGGER.C
|
|
|
|
|
- changed function UpdateMemoryWnd(), added follow dispatcher
|
|
|
|
|
- new function OnMemFollow() to handle follow menu entries
|
|
|
|
|
- changed function OnDblClick() and OnKeyUpDown(), replaced all
|
|
|
|
|
function calls of UpdateMemoryWnd() with ViewMemWnd() because of
|
|
|
|
|
the modified behavior of UpdateMemoryWnd()
|
|
|
|
|
- changed function Debugger(), added "Follow" menu entry
|
|
|
|
|
initialization in WM_INITDIALOG and menu commands handler in
|
|
|
|
|
WM_COMMAND section
|
|
|
|
|
|
|
|
|
|
DISPLAY.C
|
|
|
|
|
- added Zoom 3 to all nLcdZoom range assertions
|
|
|
|
|
- changed function UpdateMainDisplay(), UpdateMenuDisplay(),
|
|
|
|
|
WriteToMainDisplay() and WriteToMenuDisplay(), added Zoom factor 3
|
|
|
|
|
handling
|
|
|
|
|
|
|
|
|
|
EMU48.H
|
|
|
|
|
- added definition with valid calculator models
|
|
|
|
|
- added macro with model validation code
|
|
|
|
|
|
|
|
|
|
EMU48.RC
|
|
|
|
|
- changed IDD_KMLLOG, replaced "Always" text with "Show Script
|
|
|
|
|
compilation result next time"
|
|
|
|
|
- added "Follow" menu entries in debugger "Memory" context menu
|
|
|
|
|
- changed version and copyright
|
|
|
|
|
|
|
|
|
|
FILES.C
|
|
|
|
|
- bugfix in function NewDocument(), the backup now behave like with
|
|
|
|
|
function OpenDocument() -> the backup now contain the emulator
|
|
|
|
|
state before the new session and not the new session itself
|
|
|
|
|
- bugfix in function OpenDocument(), after reading CPU state, port
|
|
|
|
|
pointers must immediately be deleted because on error condition
|
|
|
|
|
function ResetDocument() tries to free this memory; added check
|
|
|
|
|
for valid calculator model
|
|
|
|
|
- bugfix in function RestoreBackup(), window title wasn't updated
|
|
|
|
|
- bugfix in function CreateBIPalette(), for 16 and 32 bitcount
|
|
|
|
|
bitmaps no logical palette was created
|
|
|
|
|
- bugfix in function LoadBitmapFile(), function blocked loading
|
|
|
|
|
bitmap when ROM file was missing
|
|
|
|
|
|
|
|
|
|
KML.C
|
|
|
|
|
- changed table szLexDelim[], removed first element
|
|
|
|
|
- added new table eIsGlobalBlock[] with valid block tokens
|
|
|
|
|
- added new function IsGlobalBlock(), checking if token inside
|
|
|
|
|
eIsGlobalBlock[] table
|
|
|
|
|
- changed function Lex(), added assertion for mode checking
|
|
|
|
|
- changed function ParseLines(), added syntax checking for command
|
|
|
|
|
tokens and removed "Open block." message
|
|
|
|
|
- changed function ParseBlocks(), added syntax checking for block
|
|
|
|
|
tokens
|
|
|
|
|
- changed function InitLcd(), added zoom factor 3 to range check of
|
|
|
|
|
TOK_ZOOM
|
|
|
|
|
- bugfix in function InitButton(), nested scancode block commands
|
|
|
|
|
hadn't handled correctly
|
|
|
|
|
- bugfix in function LoadKMLGlobal(), keyword "Global" had only been
|
|
|
|
|
detected as first command in KML script
|
|
|
|
|
- changed function InitKML(), changed checking for valid Model
|
|
|
|
|
argument and changed the corresponding error message
|
|
|
|
|
|
|
|
|
|
KML.H
|
|
|
|
|
- adjusted definitions of LEX_BLOCK, LEX_COMMAND and LEX_PARAM to
|
|
|
|
|
modified table szLexDelim[]
|
|
|
|
|
|
|
|
|
|
RESOURCE.H
|
|
|
|
|
- added several definitions
|
|
|
|
|
|
|
|
|
|
RPL.C
|
|
|
|
|
- added new function RPL_GarbageCol() for doing a garbage collection
|
|
|
|
|
- changed function RPL_CreateTemp(), added garbage collection on low
|
|
|
|
|
memory condition
|
|
|
|
|
|
|
|
|
|
|
2024-03-19 23:35:29 +01:00
|
|
|
|
Service Pack 40 for Emu48 Version 1.0
|
|
|
|
|
|
|
|
|
|
DISPLAY.C
|
|
|
|
|
- bugfix in function UpdateContrast(), used background Color 0 in
|
|
|
|
|
calculator off state even if Color 32 was defined
|
|
|
|
|
- bugfix in function CreateLcdBitmap(), DIB section shouldn't
|
|
|
|
|
created from the memory DC
|
|
|
|
|
|
|
|
|
|
EMU48.C
|
|
|
|
|
- added function IsPort2Writeable() to check if read only file
|
|
|
|
|
attribute is not set on port2 file
|
|
|
|
|
- major changes in function SettingsProc(), added "Port 2 is
|
|
|
|
|
Writeable" handling and make port2 changeable without closing the
|
|
|
|
|
current emulation session
|
|
|
|
|
- changed function SaveChanges(), default button for confirming the
|
|
|
|
|
"Do you want to save changes ?" message depends now on the
|
|
|
|
|
"SaveDefaultConfirm" INI-File setting (1=yes / 0=no button)
|
|
|
|
|
|
|
|
|
|
EMU48.H
|
|
|
|
|
- extern declaration of global variable and functions
|
|
|
|
|
|
|
|
|
|
EMU48.RC
|
|
|
|
|
- added item "Port 2 is Writeable" in settings dialog
|
|
|
|
|
- changed version
|
|
|
|
|
|
|
|
|
|
ENGINE.C
|
|
|
|
|
- bugfix in function WorkerThread(), when changing into SM_RUN state
|
2024-03-19 23:35:29 +01:00
|
|
|
|
display contrast must also be restored
|
2024-03-19 23:35:29 +01:00
|
|
|
|
|
|
|
|
|
FILES.C
|
|
|
|
|
- changed function CrcPort2(), made it global accessible
|
|
|
|
|
|
|
|
|
|
KML.C
|
|
|
|
|
- added keywords "Topbar" and "Vga" to pLexToken[] table -> scripts
|
|
|
|
|
using these keywords now are parsed with warnings and not quit
|
|
|
|
|
with a fatal error any more
|
|
|
|
|
- bugfix in function SkipWhite(), skipping remark text hadn't stop
|
|
|
|
|
at string end
|
|
|
|
|
- bugfix in function ParseBlocks(), stopped script parsing without
|
|
|
|
|
error at unknown block token
|
2024-03-19 23:35:29 +01:00
|
|
|
|
- bugfix in function SkipLines(), TOK_END was handled wrong -> this
|
|
|
|
|
caused a RunKey end if condition of TOK_IFPRESSED or TOK_IFFLAG
|
|
|
|
|
was false and there was no TOK_ELSE inside this level
|
2024-03-19 23:35:29 +01:00
|
|
|
|
- bugfix in function KillKML(), ROM type wasn't reset to the preset
|
|
|
|
|
value at the end
|
|
|
|
|
|
|
|
|
|
KML.H
|
|
|
|
|
- added TOK_TOPBAR and TOK_VGA definition
|
|
|
|
|
|
|
|
|
|
RESOURCE.H
|
|
|
|
|
- added definition
|
|
|
|
|
|
|
|
|
|
RPL.C
|
|
|
|
|
- added function RPL_GetSystemFlag() returning the state of the
|
|
|
|
|
given system flag
|
|
|
|
|
|
|
|
|
|
SETTINGS.C
|
|
|
|
|
- changed function ReadSettings() and WriteSettings(), added item
|
2024-03-19 23:35:29 +01:00
|
|
|
|
"SaveDefaultConfirm" in section [Files] in the INI-File
|
2024-03-19 23:35:29 +01:00
|
|
|
|
|
|
|
|
|
STACK.C
|
|
|
|
|
- added helper functions RPL_GetZInt() and RPL_SetZInt() to handle
|
|
|
|
|
HP49G Precision Integer objects
|
|
|
|
|
- added function DoInt() to handle a HP49G Precision Integer object
|
|
|
|
|
- changed function OnStackCopy() and OnStackPaste(), added HP49G
|
|
|
|
|
Precision Integer support (limited to 127/128 digits incl. sign)
|
|
|
|
|
|
|
|
|
|
TIMER.C
|
|
|
|
|
- changed function CheckT1() and CheckT2(), minor optimization in
|
|
|
|
|
checking if INT or WAKE bit is set
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Service Pack 39 for Emu48 Version 1.0
|
|
|
|
|
|
|
|
|
|
DISPLAY.C
|
|
|
|
|
- bugfix in function CreateMainBitmap(), in error case hMainDC
|
|
|
|
|
variable wasn't cleared
|
|
|
|
|
|
|
|
|
|
EMU48.C
|
|
|
|
|
- changed function SettingsProc(), added sound handling
|
|
|
|
|
- moved function OnStackCopy() and OnStackPaste() to STACK.C
|
|
|
|
|
- changed function WinMain(), added accelerator key access for menus
|
|
|
|
|
|
|
|
|
|
EMU48.DSP
|
|
|
|
|
- added stack.c sources
|
|
|
|
|
|
|
|
|
|
EMU48.H
|
|
|
|
|
- extern declaration of global variables and functions
|
|
|
|
|
|
|
|
|
|
EMU48.RC
|
|
|
|
|
- added "Sound" group in Settings dialog
|
|
|
|
|
- changed menu text "Copy String" to "Copy Stack" and menu text
|
|
|
|
|
"Paste String" to "Paste Stack"
|
|
|
|
|
- added accelerator resource
|
|
|
|
|
- changed version
|
|
|
|
|
|
|
|
|
|
EXTERNAL.C
|
|
|
|
|
- added function BeepWave(), beeper function using sound card
|
|
|
|
|
- added function BeepWin9x(), PC speaker function for working on
|
|
|
|
|
Win9x
|
|
|
|
|
- changed function External(), removed range checking of duration;
|
|
|
|
|
call function BeepWin9x() on Win9x instead of Beep() or in the
|
|
|
|
|
case of wave sound the function BeepWave()
|
|
|
|
|
|
|
|
|
|
KML.C
|
|
|
|
|
- bugfix in function InitKML(), changed log message for no "Model"
|
|
|
|
|
definition found and a missing "Bitmap" definition wasn't detected
|
|
|
|
|
|
|
|
|
|
PCH.H
|
|
|
|
|
- added include conio.h
|
|
|
|
|
|
|
|
|
|
RESOURCE.H
|
|
|
|
|
- added several definitions
|
|
|
|
|
|
|
|
|
|
SETTINGS.C
|
|
|
|
|
- changed function ReadSettings() and WriteSettings(), added item
|
|
|
|
|
"WaveBeep" and "WaveVolume" in section [Emulator] in the INI-File
|
|
|
|
|
|
|
|
|
|
STACK.C
|
2024-03-19 23:35:29 +01:00
|
|
|
|
- new module with the message handler functions OnStackCopy() and
|
2024-03-19 23:35:29 +01:00
|
|
|
|
OnStackPaste() prior located in EMU48.C
|
|
|
|
|
- changed function OnStackCopy() and OnStackPaste(), they can now
|
|
|
|
|
also copy real numbers from and to the clipboard
|
|
|
|
|
|
|
|
|
|
TIMER.C
|
|
|
|
|
- bugfix in function SetT1(), fixed unsynchronized access to timer1
|
|
|
|
|
value, stop timer1 only if running and restart timer1 only when
|
|
|
|
|
timer2 is running
|
|
|
|
|
|
|
|
|
|
|
2024-03-19 23:35:29 +01:00
|
|
|
|
Service Pack 38 for Emu48 Version 1.0
|
|
|
|
|
|
|
|
|
|
DISPLAY.C
|
|
|
|
|
- changed gray scale implementation from conditional compiling to
|
|
|
|
|
variable controlled
|
|
|
|
|
- bugfix in function GetLineCounterGray() and StartDisplayGray(),
|
|
|
|
|
VBL down counter counted 62,...,0,63 instead of 63,...,0
|
|
|
|
|
|
|
|
|
|
EMU48.C
|
|
|
|
|
- changed function SettingsProc(), added IDC_GRAYSCALE button
|
|
|
|
|
handling
|
|
|
|
|
- changed function OnCreate() and OnDestroy(), changed gray scale
|
|
|
|
|
implementation from conditional compiling to variable controlled
|
|
|
|
|
|
|
|
|
|
EMU48.H
|
|
|
|
|
- removed gray scale definitions
|
|
|
|
|
- changed some function prototypes to function pointers
|
|
|
|
|
|
|
|
|
|
EMU48.RC
|
|
|
|
|
- added "Enable Virtual LCD Delay" checkbox in Settings dialog
|
|
|
|
|
- changed menu text order from "Copy Stack/Copy Screen/Paste Stack"
|
|
|
|
|
to "Copy Screen/Copy Stack/Paste Stack"
|
|
|
|
|
- changed version
|
|
|
|
|
|
|
|
|
|
ENGINE.C
|
|
|
|
|
- changed function WorkerThread(), changed gray scale implementation
|
|
|
|
|
from conditional compiling to variable controlled
|
|
|
|
|
|
|
|
|
|
FILES.C
|
|
|
|
|
- changed function PatchRom(), changed ASCII string handling from
|
|
|
|
|
BYTE to CHAR data type
|
|
|
|
|
|
|
|
|
|
MOPS.C
|
|
|
|
|
- changed function Nwrite(), changed gray scale implementation from
|
|
|
|
|
conditional compiling to variable controlled
|
|
|
|
|
|
|
|
|
|
OPS.H
|
|
|
|
|
- changed function Nsrb(), speed optimization
|
|
|
|
|
|
|
|
|
|
RESOURCE.H
|
|
|
|
|
- added definition
|
|
|
|
|
|
|
|
|
|
SETTINGS.C
|
|
|
|
|
- changed function ReadSettings() and WriteSettings(), added item
|
|
|
|
|
"Grayscale" in section [Emulator] in the INI-File
|
|
|
|
|
|
|
|
|
|
|
2024-03-19 23:33:35 +01:00
|
|
|
|
Service Pack 37 for Emu48 Version 1.0
|
|
|
|
|
|
|
|
|
|
DDESERV.C
|
|
|
|
|
- changed function DdeCallback(), removed delays after ON key state
|
|
|
|
|
change
|
|
|
|
|
|
|
|
|
|
EMU48.C
|
|
|
|
|
- changed function SettingsProc(), added IDC_PORT2LOAD button
|
|
|
|
|
handling
|
|
|
|
|
- changed function OnStackPaste(), minor code optimization
|
|
|
|
|
- changed function OnDropFiles(), OnStackPaste() and OnObjectLoad(),
|
|
|
|
|
removed delays after ON key state change
|
|
|
|
|
- bugfix in function WinMain(), szCurrentKml wasn't initialized
|
|
|
|
|
|
|
|
|
|
EMU48.RC
|
|
|
|
|
- added "..." button Settings dialog
|
|
|
|
|
- changed version
|
|
|
|
|
|
|
|
|
|
ENGINE.C
|
|
|
|
|
- bugfix in function UpdateKdnBit(), wrong DWORD truncation of
|
|
|
|
|
Chipset.cycles variable
|
|
|
|
|
|
|
|
|
|
FILES.C
|
|
|
|
|
- changed function WriteStack(), minor optimization when saving as
|
|
|
|
|
string
|
|
|
|
|
- bugfix in function OpenDocument(), check for empty KML file name
|
|
|
|
|
was wrong, so the error handler of the following InitKML() was
|
|
|
|
|
always called in this case
|
|
|
|
|
- changed function LoadObject(), file access is now shared
|
|
|
|
|
- changed function DibNumColors() and CreateBIPalette(), changed
|
|
|
|
|
argument qualifier
|
|
|
|
|
|
|
|
|
|
KML.C
|
|
|
|
|
- changed variable qualifier of eIsBlock[] table and removed
|
|
|
|
|
TOK_NONE item from it
|
|
|
|
|
- bugfix, global variables pKml and pKmlList hadn't be initialized
|
|
|
|
|
- removed usage of global variables bKmlLogOkEnabled and nKmlFiles
|
|
|
|
|
- changed function AddToLog(), changed argument qualifier and minor
|
|
|
|
|
code optimization
|
|
|
|
|
- changed function PrintfToLog(), use a local buffer instead of the
|
|
|
|
|
heap for the output buffer of the wvsprintf() function, this helps
|
|
|
|
|
to reduce fragmentation of the heap
|
|
|
|
|
- changed function KMLLogProc(), minor code optimization and removed
|
|
|
|
|
use of global variable bKmlLogOkEnabled and windows redraw in the
|
|
|
|
|
WM_INITDIALOG case
|
|
|
|
|
- changed function DisplayKMLLog(), removed use of global variable
|
|
|
|
|
bKmlLogOkEnabled and transfer state of bOkEnabled over the lParam
|
|
|
|
|
argument to the dialog box procedure
|
|
|
|
|
- bugfix in function CreateKmlList(), fixed a memory leak in the
|
|
|
|
|
case of no title
|
|
|
|
|
- changed function ChooseKMLProc(), minor code optimization
|
|
|
|
|
- changed function IsBlock(), minor code optimization
|
|
|
|
|
- bugfix in function ParseString(), fixed memory leak in error case
|
|
|
|
|
and optimized implementation
|
|
|
|
|
- changed function IncludeLines(), IncludeBlocks(), LoadKMLGlobal()
|
|
|
|
|
and InitKML(), file access is now shared
|
|
|
|
|
|
|
|
|
|
OPS.H
|
|
|
|
|
- bugfix in function Nsub() and Nrsub(), in some situations wrong
|
|
|
|
|
results in dec mode with illegal decimal number entry as 2nd
|
|
|
|
|
operator
|
|
|
|
|
|
|
|
|
|
RESOURCE.H
|
|
|
|
|
- added definition
|
|
|
|
|
|
|
|
|
|
TIMER.C
|
|
|
|
|
- bugfix in function RescheduleT2(), better accuracy on conversation
|
|
|
|
|
of timer2 ticks into multimedia timer ms
|
|
|
|
|
- changed function StartTimers(), added calculation of maximum
|
|
|
|
|
timer2 ticks that can be handled by one timer event
|
|
|
|
|
- changed function StartTimers() and StopTimers(), changed
|
|
|
|
|
multimedia timer to best possible timer resolution instead of
|
|
|
|
|
risking to fail with 1 ms resolution preset
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Service Pack 36 for Emu48 Version 1.0
|
|
|
|
|
|
|
|
|
|
CHECKBOX.BMP
|
|
|
|
|
- fixed one pixel with wrong color
|
|
|
|
|
|
|
|
|
|
DEBUGGER.C
|
|
|
|
|
- bugfix in function Debugger(), used function to set icon which
|
|
|
|
|
hasn't worked properly under WinXP
|
|
|
|
|
|
|
|
|
|
DISPLAY.C
|
|
|
|
|
- changed function UpdateMenuDisplay(), minor code optimizations
|
|
|
|
|
- changed function WriteToMenuDisplay(), code optimizations
|
|
|
|
|
|
|
|
|
|
EMU48.C
|
|
|
|
|
- changed function UpdateWindowStatus(), added macro specific menu
|
|
|
|
|
control
|
|
|
|
|
- changed function CopyItemsToClipboard(), simplified implementation
|
|
|
|
|
in UNICODE mode by saving the data in the CF_UNICODETEXT format
|
|
|
|
|
- changed function OnLButtonDown(), OnLButtonUp(), OnMouseMove(),
|
|
|
|
|
OnKeyDown() and OnKeyUp(), disable function handling when in macro
|
|
|
|
|
play mode
|
|
|
|
|
- changed function MainWndProc(), added some macro handler functions
|
|
|
|
|
|
|
|
|
|
EMU48.DSP
|
|
|
|
|
- added keymacro.c sources
|
|
|
|
|
|
|
|
|
|
EMU48.H
|
|
|
|
|
- extern declaration of global variables and functions
|
|
|
|
|
|
|
|
|
|
EMU48.RC
|
|
|
|
|
- changed "Always" checkbox in "KML Script Compilation Result"
|
|
|
|
|
dialog from a pushlike to normal one for better readability under
|
|
|
|
|
WinXP style
|
|
|
|
|
- added "Macro Settings" dialog
|
|
|
|
|
- added Menuitem Tools "Macro..."
|
|
|
|
|
- changed version and copyright
|
|
|
|
|
|
|
|
|
|
ENGINE.C
|
|
|
|
|
- bugfix in function AdjustSpeed(), on large operations the
|
|
|
|
|
workaround condition for Win2k was detected and the following
|
|
|
|
|
synchronizing failed because the CPU didn't got the free running
|
|
|
|
|
cycles for the waited time
|
|
|
|
|
- changed function WorkerThread(), close running keyboard macros
|
|
|
|
|
when switching into invalid state
|
|
|
|
|
|
|
|
|
|
FILES.C
|
|
|
|
|
- changed function MapRom(), added detection for packed ROM images
|
|
|
|
|
- bugfix in function OpenDocument(), reload KML button state from
|
|
|
|
|
last document close
|
|
|
|
|
|
|
|
|
|
KEYBOARD.C
|
|
|
|
|
- changed function KeyboardEvent(), added call to key recording
|
|
|
|
|
function KeyMacroRecord()
|
|
|
|
|
- bugfix in function KeyboardEvent(), prevent buffer overflow with
|
|
|
|
|
too big out codes on Chipset.Keyboard_Row array
|
|
|
|
|
|
|
|
|
|
KEYMACRO.C
|
2024-03-19 23:35:29 +01:00
|
|
|
|
- new module supporting keyboard macro functions
|
2024-03-19 23:33:35 +01:00
|
|
|
|
|
|
|
|
|
KML.C
|
|
|
|
|
- added function ReloadButtons(), update internal button state from
|
|
|
|
|
chip keyboard matrix content
|
|
|
|
|
- added function PlayKey(), handle button with OutIn code
|
|
|
|
|
|
|
|
|
|
KML.H
|
|
|
|
|
- added ReloadButtons() and PlayKey() function prototype
|
|
|
|
|
|
|
|
|
|
MOPS.C
|
|
|
|
|
- bugfix in function WriteIO(), writing to timer2 failed if first
|
|
|
|
|
writing address was before the timer2 address area
|
|
|
|
|
- changed function WriteIO(), changing the CONTRLSB (0x101) or the
|
|
|
|
|
DISPTEST (0x102) register doesn't effect any display pointer, so
|
|
|
|
|
update request for recalculating the pointers removed
|
|
|
|
|
|
|
|
|
|
OPCODES.C
|
|
|
|
|
- bugfix in function o802() and o803(), the r=IN opcodes work also
|
|
|
|
|
on odd addresses in the IO register memory mapping area
|
|
|
|
|
|
|
|
|
|
PCH.H
|
|
|
|
|
- added VERIFY macro
|
|
|
|
|
|
|
|
|
|
RESOURCE.H
|
|
|
|
|
- added several definitions
|
|
|
|
|
|
|
|
|
|
SETTINGS.C
|
|
|
|
|
- changed function ReadSettings() and WriteSettings(), added section
|
|
|
|
|
[Macro] in INI-File
|
|
|
|
|
|
|
|
|
|
|
2024-03-19 22:38:33 +01:00
|
|
|
|
Service Pack 35 for Emu48 Version 1.0
|
|
|
|
|
|
|
|
|
|
DDESERV.C
|
|
|
|
|
- replaced all LocalAlloc() with HeapAlloc() memory requests
|
|
|
|
|
|
|
|
|
|
DEBUGGER.C
|
|
|
|
|
- replaced all LocalAlloc() with HeapAlloc() memory requests
|
|
|
|
|
- changed function UpdateProfileWnd(), replaced CONST TCHAR * with
|
|
|
|
|
LPCTSTR
|
|
|
|
|
|
|
|
|
|
DISASM.C
|
|
|
|
|
- changed several variable qualifiers from TCHAR * to LPCTSTR and
|
|
|
|
|
replaced rest of TCHAR * by LPTSTR
|
|
|
|
|
- changed variable qualifier of hp_reg_1_af and hp_reg_2_af
|
|
|
|
|
- changed function append_tab(), speed optimization
|
|
|
|
|
- changed function append_field(), removed use of temporary variable
|
|
|
|
|
|
|
|
|
|
DISPLAY.C
|
|
|
|
|
- renamed variable nLcdDoubled to nLcdZoom
|
|
|
|
|
- changed function UpdateMainDisplay() and UpdateMenuDisplay(),
|
|
|
|
|
minor improvement by reading each display line now with the actual
|
|
|
|
|
display start pointer
|
|
|
|
|
|
|
|
|
|
EMU48.C
|
|
|
|
|
- renamed variable nLcdDoubled to nLcdZoom
|
|
|
|
|
- replaced all LocalAlloc() with HeapAlloc() memory requests
|
|
|
|
|
- bugfix in function CopyItemsToClipboard(), don't worked in UNICODE
|
|
|
|
|
mode because character translation was missing
|
|
|
|
|
|
|
|
|
|
EMU48.H
|
|
|
|
|
- extern declaration of global variable
|
|
|
|
|
- moved T2CYCLES definition from OPCODES.H
|
|
|
|
|
- renamed variable nLcdDoubled to nLcdZoom
|
|
|
|
|
- changed function DuplicateString(), replaced LocalAlloc() with
|
|
|
|
|
HeapAlloc() memory request
|
|
|
|
|
|
|
|
|
|
EMU48.RC
|
|
|
|
|
- changed version
|
|
|
|
|
- changed resource language description to English
|
|
|
|
|
|
|
|
|
|
FILES.C
|
|
|
|
|
- replaced all LocalAlloc() with HeapAlloc() memory requests
|
|
|
|
|
- changed function CreateBIPalette(), allocated memory for
|
|
|
|
|
LOGPALETTE isn't initialized with zero any more
|
|
|
|
|
|
|
|
|
|
KML.C
|
|
|
|
|
- renamed variable nLcdDoubled to nLcdZoom
|
|
|
|
|
- replaced all LocalAlloc() with HeapAlloc() memory requests
|
|
|
|
|
- bugfix in function PrintfToLog(), temporary buffer was half of
|
|
|
|
|
size in UNICODE mode
|
|
|
|
|
- changed function BrowseFolder() and ChooseKMLProc(), renamed
|
|
|
|
|
IDC_EMU48DIR to IDC_EMUDIR and IDC_EMU48DIRSEL to IDC_EMUDIRSEL
|
|
|
|
|
- bugfix in function BrowseFolder(), the shell's allocator release
|
|
|
|
|
was missing in one case
|
|
|
|
|
- changed function ChooseKMLProc(), optimized IDC_EMUDIRSEL command
|
|
|
|
|
case
|
|
|
|
|
- bugfix in function ParseString(), strings greater 127 characters
|
|
|
|
|
caused a buffer overflow in UNICODE mode
|
|
|
|
|
- bugfix in function KillKML(), display size wasn't reset to the
|
|
|
|
|
preset value at the end
|
|
|
|
|
|
|
|
|
|
RESOURCE.H
|
|
|
|
|
- renamed IDC_EMU48DIR to IDC_EMUDIR
|
|
|
|
|
- renamed IDC_EMU48DIRSEL to IDC_EMUDIRSEL
|
|
|
|
|
|
|
|
|
|
RPL.C
|
|
|
|
|
- replaced all LocalAlloc() with HeapAlloc() memory requests
|
|
|
|
|
|
|
|
|
|
OPCODES.H
|
|
|
|
|
- moved T2CYCLES definition to EMU48.H
|
|
|
|
|
|
|
|
|
|
OPS.H
|
|
|
|
|
- changed function Nadd(), optimized "illegal number in dec mode"
|
|
|
|
|
detection
|
|
|
|
|
- changed function Ninc(), Ndec(), Nsub() and Nrsub(), removed
|
|
|
|
|
register wrap handling
|
|
|
|
|
- changed function Nneg(), optimized non zero value handling
|
|
|
|
|
- bugfix in function Nsrc(), the Sticky Bit (SB) wasn't handled in
|
|
|
|
|
all rSRC opcodes
|
|
|
|
|
|
|
|
|
|
TIMER.C
|
|
|
|
|
- bugfix in function CalcT2(), estimated timer2 ticks were sometimes
|
|
|
|
|
to large because there was a misbehavior between real time clock
|
|
|
|
|
and counted CPU cycles when in free running mode
|
|
|
|
|
- changed function RescheduleT2(), optimized initialization of
|
|
|
|
|
synchronization variables used in CalcT2()
|
|
|
|
|
- changed function SetHP48Time(), changed variable typ of ticks and
|
|
|
|
|
time from LONGLONG to ULONGLONG
|
|
|
|
|
- changed function ReadT2(), minor optimization calculating the
|
|
|
|
|
timer2 value
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Service Pack 34 for Emu48 Version 1.0
|
|
|
|
|
|
|
|
|
|
CURSOR.C
|
2024-03-19 23:35:29 +01:00
|
|
|
|
- new module to create a hand cursor
|
2024-03-19 22:38:33 +01:00
|
|
|
|
|
|
|
|
|
DEBUGGER.C
|
|
|
|
|
- bugfix in function NewValue(), EnterAddr(), EnterBreakpoint(),
|
|
|
|
|
EditBreakpoint(), InfoIntr() and InfoWoRegister(), uncompleted
|
|
|
|
|
wParam argument decoding in WM_COMMAND case
|
|
|
|
|
- replaced function OnToggleCheck() with ToggleBreakpointItem(), a
|
|
|
|
|
more general function to toggle a breakpoint check box
|
|
|
|
|
- changed function EditBreakpoint(), adjusted LBN_DBLCLK case to use
|
|
|
|
|
the new ToggleBreakpointItem() function and modified behavior of
|
|
|
|
|
VK_SPACE to toogle all selected items
|
|
|
|
|
|
|
|
|
|
DISPLAY.C
|
|
|
|
|
- replaced variable use of hOldLcdBitmap with hLcdBitmap
|
|
|
|
|
- replaced variable use of hOldMainBitmap with hMainBitmap
|
|
|
|
|
|
|
|
|
|
EMU48.C
|
|
|
|
|
- removed limitation to 16 COM ports
|
|
|
|
|
- changed variable qualifier of szLicence
|
|
|
|
|
- added global variables
|
|
|
|
|
- added Critical Section initialization for CPU slow down
|
|
|
|
|
- changed function SetWindowTitle(), changed argument qualifier
|
|
|
|
|
- bugfix in function SettingsProc(), Disasm() and About(),
|
|
|
|
|
uncompleted wParam argument decoding in WM_COMMAND case
|
|
|
|
|
- changed function OnCreate() and OnDestroy(), added load and
|
|
|
|
|
destroy of two new cursor resources
|
|
|
|
|
- bugfix in function MainWndProc(), wrong wParam argument decoding
|
|
|
|
|
in WM_SYSCOMMAND case
|
|
|
|
|
- changed function WinMain(), removed class cursor from main window
|
|
|
|
|
- bugfix in function WinMain(), fixed possible buffer overflows in
|
|
|
|
|
state file loading message
|
|
|
|
|
|
|
|
|
|
EMU48.DSP
|
|
|
|
|
- added cursor.c sources
|
|
|
|
|
|
|
|
|
|
EMU48.H
|
|
|
|
|
- extern declaration of global variables and functions
|
|
|
|
|
|
|
|
|
|
EMU48.RC
|
|
|
|
|
- changed IDC_DEBUG_MEM from static to listbox control, looks better
|
|
|
|
|
in connection with WinXP style
|
|
|
|
|
- changed version and copyright
|
|
|
|
|
|
|
|
|
|
FILES.C
|
|
|
|
|
- renamed variable szEmu48Directory[] to szEmuDirectory[]
|
|
|
|
|
- changed buffer size information of files and pathes from 260 to
|
|
|
|
|
MAX_PATH definition
|
|
|
|
|
- bugfix in function GetOpenFilename(), GetSaveAsFilename(),
|
|
|
|
|
GetLoadObjectFilename() and GetSaveObjectFilename(), adjusted
|
|
|
|
|
size of temporary buffer to size of destination buffer and fixed
|
|
|
|
|
memory allocation bug in UNICODE mode
|
|
|
|
|
- changed function LoadBitmapFile(), it's better to validate the
|
|
|
|
|
pbyRom instead of the hRomFile variable to check if the ROM is
|
|
|
|
|
loaded to avoid possible side effects (ROM loaded by resource) and
|
|
|
|
|
removed uncalled code part
|
|
|
|
|
|
|
|
|
|
ENGINE.C
|
|
|
|
|
- bugfix in function AdjustSpeed(), AdjKeySpeed() and SetSpeed(),
|
|
|
|
|
reference setting wasn't synchronized
|
|
|
|
|
|
|
|
|
|
KML.C
|
|
|
|
|
- renamed variable szEmu48Directory[] to szEmuDirectory[]
|
|
|
|
|
- bugfix in function KMLLogProc(), uncompleted wParam argument
|
|
|
|
|
decoding in WM_COMMAND case and update of the bAlwaysDisplayLog
|
|
|
|
|
variable only in the IDOK and IDCANCEL case
|
|
|
|
|
- bugfix in function ChooseKMLProc(), uncompleted wParam argument
|
|
|
|
|
decoding in WM_COMMAND case and added UNREFERENCED_PARAMETER
|
|
|
|
|
statement
|
|
|
|
|
- bugfix in function ParseLines() and ParseBlocks(), fixed problem
|
|
|
|
|
of uninitialized variable which may occur on parsing corrupt KML
|
|
|
|
|
files
|
|
|
|
|
- bugfix in function KillKML(), set variables bDebug and nKMLFlags
|
|
|
|
|
to there startup values
|
|
|
|
|
- changed function MouseMovesTo(), added code part to select cursor
|
|
|
|
|
|
|
|
|
|
OPCODES.C
|
|
|
|
|
- bugfix in function o3X(), o8082X(), oBb0(), oBb1(), oBb2(),
|
|
|
|
|
oBb3(), oBb4(), oBb5(), oBb6() and oBb7(), used wrong cpu cycles
|
|
|
|
|
|
|
|
|
|
PCH.H
|
|
|
|
|
- added IDC_HAND definition for non Win2k OS project
|
|
|
|
|
|
|
|
|
|
SETTINGS.C
|
|
|
|
|
- renamed variable szEmu48Directory[] to szEmuDirectory[]
|
|
|
|
|
- changed function ReadSettings() and WriteSettings(), added item
|
|
|
|
|
"ClassicCursor" in section [KML] in the INI-File
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Service Pack 33 for Emu48 Version 1.0
|
|
|
|
|
|
|
|
|
|
DEBUGGER.C
|
|
|
|
|
- bugfix in function Debugger(), removed illegal call of
|
|
|
|
|
DestroyMenu() in WM_DESTROY message handler
|
|
|
|
|
- added function UpdateDbgCycleCounter() to handle a 64 bit CPU
|
|
|
|
|
cycles counter in debug mode
|
|
|
|
|
- added implementation of "Profiler" dialog box
|
|
|
|
|
|
|
|
|
|
DEBUGGER.H
|
|
|
|
|
- extern declaration of global function
|
|
|
|
|
|
|
|
|
|
EMU48.C
|
|
|
|
|
- changed function WinMain(), added non modal "Profiler" dialog box
|
|
|
|
|
in main message handler
|
|
|
|
|
|
|
|
|
|
EMU48.H
|
|
|
|
|
- extern declaration of global variable
|
|
|
|
|
|
|
|
|
|
EMU48.RC
|
|
|
|
|
- changed version and copyright
|
|
|
|
|
- bugfix in dialogs, some WS_EX_ styles (especially window borders)
|
|
|
|
|
don't worked on some operating systems
|
|
|
|
|
- added Menuitem Info "Profiler..." in debugger menu
|
|
|
|
|
- added "Profiler" dialog
|
|
|
|
|
|
|
|
|
|
ENGINE.C
|
|
|
|
|
- bugfix in function Debugger(), fixed problem at quitting debugger
|
|
|
|
|
when last executed opcode was SHUTDN
|
|
|
|
|
- changed function Debugger(), added call for 64 bit cpu cycle
|
|
|
|
|
counter adjust
|
|
|
|
|
|
|
|
|
|
KEYBOARD.C
|
|
|
|
|
- bugfix in function KeyboardEvent(), CPU slow down by calling the
|
|
|
|
|
function AdjKeySpeed() on key pressed must be activated here
|
|
|
|
|
|
|
|
|
|
OPCODES.C
|
|
|
|
|
- changed function o802() and o803(), removed AdjKeySpeed() call
|
|
|
|
|
|
|
|
|
|
RESOURCE.H
|
|
|
|
|
- added definitions
|
|
|
|
|
|
|
|
|
|
RPL.C
|
|
|
|
|
- replaced object prolog entries by definitions
|
|
|
|
|
|
|
|
|
|
SERIAL.C
|
|
|
|
|
- bugfix in function CommSetBaud(), changed DCB setting from 1 to 2
|
|
|
|
|
stop bits which is closer to the original 2-3/16 stop bits
|
|
|
|
|
|
|
|
|
|
TIMER.C
|
|
|
|
|
- changed function TimeProc(), removed check if timer running
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Service Pack 32 for Emu48 Version 1.0
|
|
|
|
|
|
|
|
|
|
DDESERV.C
|
|
|
|
|
- bugfix in function DdeCallback(), DDE commands POKE and REQUEST
|
|
|
|
|
worked also on machines with no stack and debugger control in DDE
|
|
|
|
|
command POKE was missing
|
|
|
|
|
|
|
|
|
|
DEBUGGER.C
|
|
|
|
|
- bugfix in function OnKeyF7() and OnKeyF8(), on expected longer
|
|
|
|
|
operations like with skipping interrrupt code, the menu and
|
|
|
|
|
toolbar should be set into run mode; a general setting into run
|
|
|
|
|
mode wasn't used because of menu flickering
|
|
|
|
|
- changed function OnStackPush() and OnStackPop(), stack elements
|
|
|
|
|
can be pushed or poped on any stack level now
|
|
|
|
|
- bugfix in function OnLButtonUp(), forgot P and WP field selection
|
|
|
|
|
update on P register changing
|
|
|
|
|
- changed function OnKeyRightLeft(), code optimizations
|
|
|
|
|
- changed function NotifyDebugger(), handle changed argument type
|
|
|
|
|
- bugfix in function Debugger(), set the menu and toolbar into run
|
|
|
|
|
mode at startup, this prevents wrong active buttons when interrupt
|
|
|
|
|
code should be skipped and the calculator can't leave the
|
|
|
|
|
interrupt code because the ON key is permanently down or another
|
|
|
|
|
interrupt source prevent leaving the interrupt handler
|
|
|
|
|
|
|
|
|
|
DEBUGGER.H
|
|
|
|
|
- added new debugger notify defines
|
|
|
|
|
|
|
|
|
|
EMU48.C
|
|
|
|
|
- changed function OnCreate(), don't enable DragAcceptFiles() here
|
|
|
|
|
- changed function OnDropFiles(), checking calculator model to
|
|
|
|
|
disable stack writing isn't necessary any more
|
|
|
|
|
|
|
|
|
|
EMU48.DSP
|
|
|
|
|
- new makefile for MSVC 6.0
|
|
|
|
|
|
|
|
|
|
EMU48.H
|
|
|
|
|
- extern declaration of global function (DLL version)
|
|
|
|
|
- added hardware type define
|
|
|
|
|
|
|
|
|
|
EMU48.RC
|
|
|
|
|
- changed version
|
|
|
|
|
|
|
|
|
|
ENGINE.C
|
|
|
|
|
- changed function Debugger(), added ability to detect an ASM and
|
|
|
|
|
RPL breakpoint on the same address
|
|
|
|
|
- bugfix in function ResumeDebugger(), resume may hung in CPU
|
|
|
|
|
shutdown mode
|
|
|
|
|
|
|
|
|
|
FILES.C
|
|
|
|
|
- changed function OpenDocument() and SaveDocumentAs(), added
|
|
|
|
|
callback notify function call for DLL version
|
|
|
|
|
|
|
|
|
|
KML.C
|
|
|
|
|
- added "Hardware" keyword in Global section
|
|
|
|
|
- changed function CreateKmlList(), added checking the "Hardware"
|
|
|
|
|
keyword to ignore KML scripts for other emulators
|
|
|
|
|
- changed function InitGlobal(), added logfile output for the
|
|
|
|
|
"Hardware" keyword
|
|
|
|
|
- changed function InitKML(), enable object "Drag and Drop"
|
2024-03-19 23:35:29 +01:00
|
|
|
|
calculator model dependent here now
|
2024-03-19 22:38:33 +01:00
|
|
|
|
|
|
|
|
|
KML.H
|
|
|
|
|
- added TOK_HARDWARE definition
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Service Pack 31 for Emu48 Version 1.0
|
|
|
|
|
|
|
|
|
|
DEBUGGER.C
|
|
|
|
|
- bugfix in function Debugger(), used wrong background color in
|
|
|
|
|
WM_CTLCOLORSTATIC message handler for WinXP style
|
|
|
|
|
|
|
|
|
|
DISPLAY.C
|
|
|
|
|
- bugfix in function WriteToMainDisplay() and WriteToMenuDisplay(),
|
|
|
|
|
drew to display even if the DON bit in the =BITOFFSET (0x100)
|
|
|
|
|
register was cleared
|
|
|
|
|
|
|
|
|
|
EMU48.C
|
|
|
|
|
- added global variable
|
|
|
|
|
- changed function SettingsProc(), added IDC_OBJECTLOADWARNING check
|
|
|
|
|
box handling
|
|
|
|
|
- bugfix in function OnViewSettings(), removed calling of function
|
|
|
|
|
ReadSettings() because INI file settings may be invalid here
|
|
|
|
|
- changed function OnObjectLoad(), to disable warning message use a
|
|
|
|
|
global variable now
|
|
|
|
|
|
|
|
|
|
EMU48.H
|
|
|
|
|
- extern declaration of global variable
|
|
|
|
|
- changed prototype of function ScanKeyboard()
|
|
|
|
|
|
|
|
|
|
EMU48.RC
|
|
|
|
|
- added item "Show Load Object Warning" in Settings dialog
|
|
|
|
|
- added "..." button in "Choose Your KML Script" dialog
|
|
|
|
|
- changed version
|
|
|
|
|
|
|
|
|
|
ENGINE.C
|
|
|
|
|
- bugfix in function UpdateKdnBit(), update KDN bit only when
|
|
|
|
|
keyboard interrupt is on and the timer is running
|
|
|
|
|
|
|
|
|
|
FILES.C
|
|
|
|
|
- bugfix in function NewDocument(), set the RST bit in the LPE
|
|
|
|
|
(0x109) register to indicate a POR (Power On Reset)
|
|
|
|
|
- bugfix in function RestoreBackup(), when the KML script
|
|
|
|
|
initialization failed the Chipset.Port0, Chipset.Port1 and
|
|
|
|
|
Chipset.Port2 pointer referenced to unallocated memory
|
|
|
|
|
|
|
|
|
|
IO.H
|
|
|
|
|
- added LPD and LPE definitions
|
|
|
|
|
|
|
|
|
|
KEYBOARD.C
|
|
|
|
|
- bugfix in function ScanKeyboard(), a stopped timer don't prevent
|
|
|
|
|
keyboard status update, it prevents the 1ms keyboard polling and
|
|
|
|
|
generating a keyboard interrupt; also now distinguish keyboard
|
|
|
|
|
update between 1ms keyboard poll and direct update with A=IN and
|
|
|
|
|
C=IN command
|
|
|
|
|
- changed function KeyboardEvent(), call function ScanKeyboard() in
|
|
|
|
|
the 1ms poll context now
|
|
|
|
|
|
|
|
|
|
KML.C
|
|
|
|
|
- new functions BrowseCallbackProc() and BrowseFolder(), helper
|
|
|
|
|
functions to browse a directory
|
|
|
|
|
- changed function ChooseKMLProc(), added implementation of browser
|
|
|
|
|
button, removed WM_SETTEXT message handler and changed WM_COMMAND
|
|
|
|
|
handler from 'if' to 'switch' structure
|
|
|
|
|
- bugfix in function ChooseKMLProc(), used wrong array size of
|
|
|
|
|
szEmu48Directory in UNICODE mode
|
|
|
|
|
|
|
|
|
|
MOPS.C
|
|
|
|
|
- bugfix in function CpuReset(), set the RST bit in the LPE (0x109)
|
|
|
|
|
register to indicate NRES reset
|
|
|
|
|
- bugfix in function Npeek(), Nread() and Nwrite(), wrap around over
|
|
|
|
|
address #FFFFF failed
|
|
|
|
|
- bugfix in function ReadIO(), reset the RST bit in the LPE (0x109)
|
|
|
|
|
register after reading
|
|
|
|
|
- bugfix in function WriteIO(), added implementation of the RST bit
|
|
|
|
|
in the LPE (0x109) register
|
|
|
|
|
|
|
|
|
|
OPCODES.C
|
|
|
|
|
- renamed define BIGENDIAN to _BIGENDIAN to avoid problems with the
|
|
|
|
|
definition in WINSOCK2.H
|
|
|
|
|
- bugfix in function o158x(), o159x(), o15Cx(), o15Dx(), o15Ax(),
|
|
|
|
|
o15Bx(), o15Ex(), o15Fx(), o807(), o819f0(), o819f1(), o819f2(),
|
|
|
|
|
o819f3(), oF0(), oF1(), oF2(), oF3(), oF4(), oF5(), oF6() and
|
|
|
|
|
oF7(), used wrong cpu cycles
|
|
|
|
|
- changed function o800() and o801(), call function ScanKeyboard()
|
|
|
|
|
in the 1ms poll context now
|
|
|
|
|
- bugfix in function o802() and o803(), added ScanKeyboard()
|
|
|
|
|
function call for direct Chipset.in update
|
|
|
|
|
- bugfix in function o8080(), added ScanKeyboard() function call to
|
|
|
|
|
activate 1ms keyboard polling
|
|
|
|
|
- changed function o80810(), call function ScanKeyboard() in the
|
|
|
|
|
direct update context now
|
|
|
|
|
|
|
|
|
|
OPCODES.H
|
|
|
|
|
- changed some remarks
|
|
|
|
|
|
|
|
|
|
PCH.H
|
|
|
|
|
- added include shlobj.h
|
|
|
|
|
|
|
|
|
|
RESOURCE.H
|
|
|
|
|
- added definition
|
|
|
|
|
|
|
|
|
|
SETTINGS.C
|
|
|
|
|
- changed definitions, allows setting of INI filename and registry
|
|
|
|
|
path in the makefile now
|
|
|
|
|
- changed function ReadSettings() and WriteSettings(), added item
|
|
|
|
|
"LoadObjectWarning" in section [Files] in the INI-File
|
|
|
|
|
|
|
|
|
|
|
2024-03-19 22:37:54 +01:00
|
|
|
|
Service Pack 30 for Emu48 Version 1.0
|
|
|
|
|
|
|
|
|
|
DEBUGGER.C
|
|
|
|
|
- bugfix in function Debugger(), used wrong debugger window position
|
|
|
|
|
when task bar was on top or left side
|
|
|
|
|
- added implementation of "Write-Only Register" dialog box
|
|
|
|
|
|
|
|
|
|
DDESERV.C
|
|
|
|
|
- added io.h in header definition
|
|
|
|
|
- removed usage of Chipset.dispon variable
|
|
|
|
|
|
|
|
|
|
DISPLAY.C
|
|
|
|
|
- added sources of gray scale emulation (experimental)
|
|
|
|
|
- replaced the LCD1_ROW by the LCD_ROW definition and the use of the
|
|
|
|
|
LCD2_ROW and the LCD3_ROW definitions by a calculation base on
|
|
|
|
|
LCD_ROW
|
|
|
|
|
- changed macro LINES(), added brackets forcing operator priority
|
|
|
|
|
- changed BITMAPINFO color table variable type from DWORD to RGBQUAD
|
|
|
|
|
- changed LCD bitmap from 64 palette entries to the number of used
|
|
|
|
|
colors in the LCD area, so function UpdateContrast() do not change
|
|
|
|
|
the drawing patterns to a new palette entry, it change the palette
|
|
|
|
|
itself now
|
|
|
|
|
- bugfix in function UpdateContrast(), switch palette to LCD off
|
|
|
|
|
background color if display is off
|
|
|
|
|
- bugfix in function DestroyLcdBitmap(), contrast palette wasn't
|
|
|
|
|
restored to startup colors
|
|
|
|
|
- changed function WriteToMainDisplay(), used wrong sizeof argument
|
|
|
|
|
to get the 4 byte x-multiplier in the calculation of the memory
|
|
|
|
|
position in the LCD bitmap
|
|
|
|
|
- bugfix in function StartDisplay(), the VBL counter of a switched
|
|
|
|
|
on display starts at the LINECOUNT (0x128,0x129) register content
|
|
|
|
|
|
|
|
|
|
EMU48.C
|
|
|
|
|
- removed usage of Chipset.dispon variable
|
|
|
|
|
- bugfix in function SetCommList(), used wrong NO_SERIAL string
|
|
|
|
|
definition for UNICODE mode
|
|
|
|
|
- bugfix in function OnDestroy(), call function SwitchToState() only
|
|
|
|
|
if CPU emulation thread is running
|
|
|
|
|
- bugfix in function OnViewCopy(), clipboard contained wrong data
|
|
|
|
|
when left display margin was unequal to zero
|
|
|
|
|
|
|
|
|
|
EMU48.H
|
|
|
|
|
- changed prototype of function StartDisplay()
|
|
|
|
|
- extern declaration of global function
|
|
|
|
|
|
|
|
|
|
EMU48.RC
|
|
|
|
|
- fixed misspellings "hexdezimal" to "hexadecimal"
|
|
|
|
|
- added "Write-Only Register" dialog
|
|
|
|
|
- added Windows XP manifest resource
|
|
|
|
|
- changed version and copyright
|
|
|
|
|
|
|
|
|
|
EMU48.XML
|
|
|
|
|
- manifest file for Windows XP
|
|
|
|
|
|
|
|
|
|
ENGINE.C
|
|
|
|
|
- changed function WorkerThread(), added parameter to StartDisplay()
|
|
|
|
|
function call
|
|
|
|
|
|
|
|
|
|
FILES.C
|
|
|
|
|
- bugfix in function NewDocument(), OpenDocument() and
|
|
|
|
|
RestoreBackup(), used wrong window restore position when task bar
|
|
|
|
|
was on top or left side
|
|
|
|
|
- bugfix in function SaveBackup(), get workspace instead of screen
|
|
|
|
|
coordinates of main window
|
|
|
|
|
- changed function LoadObject(), changed text output of "load error"
|
|
|
|
|
message boxes
|
|
|
|
|
|
|
|
|
|
KML.C
|
|
|
|
|
- changed function InitAnnunciator() and DrawAnnunciator(),
|
|
|
|
|
determine the number of valid entries now from the annunciator
|
|
|
|
|
array size
|
|
|
|
|
|
|
|
|
|
MOPS.C
|
|
|
|
|
- removed usage of Chipset.dispon variable
|
|
|
|
|
- bugfix in function Npeek(), fixed most of the wrong read values in
|
|
|
|
|
the I/O register area
|
|
|
|
|
- changed function Nwrite(), added conditional gray scale compiling
|
|
|
|
|
and added parameter to StartDisplay() function call
|
|
|
|
|
- bugfix in function WriteIO(), after changing the DON bit in
|
|
|
|
|
BITOFFSET (0x100) the display contrast must be updated as well
|
|
|
|
|
|
|
|
|
|
RESOURCE.H
|
|
|
|
|
- added some definitions
|
|
|
|
|
|
|
|
|
|
SERIAL.C
|
|
|
|
|
- redesign of character transmit part, on some PC systems corrupted
|
|
|
|
|
characters were sent
|
|
|
|
|
|
|
|
|
|
TIMER.C
|
|
|
|
|
- workaround for Win2k in function CalcT2(), when detecting a
|
|
|
|
|
"negative" time use the CPU cycles for new timer2 value
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Service Pack 29 for Emu48 Version 1.0
|
|
|
|
|
|
|
|
|
|
DEBUGGER.C
|
|
|
|
|
- bugfix in function UpdateMiscWnd(), readded trailing spaces in
|
|
|
|
|
"On" text
|
|
|
|
|
- changed function Debugger(), replaced bDbgEnable with nDbgState
|
|
|
|
|
access
|
|
|
|
|
|
|
|
|
|
DEBUGGER.H
|
|
|
|
|
- added new debugger state defines
|
|
|
|
|
|
|
|
|
|
DISPLAY.C
|
2024-03-19 22:38:33 +01:00
|
|
|
|
- added variable and functions from MOPS.C
|
2024-03-19 22:37:54 +01:00
|
|
|
|
- new functions StartDisplay() and StopDisplay() to control display
|
|
|
|
|
|
|
|
|
|
EMU48.C
|
|
|
|
|
- added VOID as parameter in functions with no argument
|
|
|
|
|
- added Critical Section initialization for gray scale emulation
|
|
|
|
|
- changed function UpdateWindowStatus(), OnDropFiles(),
|
|
|
|
|
OnStackPaste() and OnObjectLoad(), replaced bDbgEnable with
|
|
|
|
|
nDbgState access
|
|
|
|
|
- changed function OnDropFiles(), OnFileClose(), OnStackPaste() and
|
|
|
|
|
OnObjectLoad(), added debugger control
|
|
|
|
|
|
|
|
|
|
EMU48.H
|
|
|
|
|
- added defines for conditional gray scale compiling
|
|
|
|
|
- removed declaration of bDbgEnable
|
|
|
|
|
- extern declaration of global variables and functions
|
|
|
|
|
|
|
|
|
|
EMU48.RC
|
|
|
|
|
- changed version and copyright
|
|
|
|
|
|
|
|
|
|
ENGINE.C
|
|
|
|
|
- removed global variable bDbgEnable, replaced by a state in the
|
|
|
|
|
nDbgState variable
|
|
|
|
|
- added new functions SuspendDebugger() and ResumeDebugger() for
|
|
|
|
|
debugger control
|
|
|
|
|
- changed functions Debugger(), WaitForSleepState(), SwitchToState()
|
|
|
|
|
and WorkerThread(), added debugger control instead of general
|
|
|
|
|
debugger switching off
|
|
|
|
|
- changed function CheckSerial(), removed interrupt handling and
|
|
|
|
|
made function public
|
|
|
|
|
- changed function SwitchToState() and WorkerThread(), replaced
|
|
|
|
|
bDbgEnable with nDbgState access
|
|
|
|
|
- changed function WorkerThread(), main loop don't check status of
|
|
|
|
|
serial port any more, serial port must be initialized before
|
|
|
|
|
entering the RUN state now, added start/stop VBL counter at
|
|
|
|
|
entering/leaving the RUN state
|
|
|
|
|
|
|
|
|
|
FILES.C
|
|
|
|
|
- changed function WriteStack(), minor optimization
|
|
|
|
|
|
|
|
|
|
MOPS.C
|
|
|
|
|
- removed variable ioc_acc
|
|
|
|
|
- moved variable byVblRef and the functions F4096Hz() and
|
|
|
|
|
GetLineCounter() to DISPLAY.C
|
|
|
|
|
- changed function CpuReset(), must close serial port here
|
|
|
|
|
- changed function WriteIO(), control of the BITOFFSET (0x100)
|
|
|
|
|
register calls now the functions StartDisplay() and StopDisplay()
|
|
|
|
|
to modify the VBL counter reference
|
|
|
|
|
- changed function WriteIO(), changing the IOC (0x110) register
|
|
|
|
|
must also update the serial port status, because this isn't
|
|
|
|
|
handled in the CPU main loop any more
|
|
|
|
|
|
|
|
|
|
TIMER.C
|
|
|
|
|
- changed function RescheduleT2(), calculate now ceil of time delay
|
|
|
|
|
to reduce checking of timer2 value without timer2 overflow
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Service Pack 28 for Emu48 Version 1.0
|
|
|
|
|
|
|
|
|
|
DEBUGGER.C
|
|
|
|
|
- bugfix in table MemMap[], NCE3 reference in HP39/40 part was wrong
|
|
|
|
|
- bugfix in function SetMappingMenu(), used wrong variable type for
|
|
|
|
|
UNICODE mode
|
|
|
|
|
- changed function UpdateMiscWnd(), removed trailing spaces in text
|
|
|
|
|
- new functions OnStackPush(), OnStackPop() and OnStackModify() and
|
|
|
|
|
other changes for implementation of the stack context menu
|
|
|
|
|
- changed function OnFindOK(), minor optimizations
|
|
|
|
|
- changed function OnNewValue(), now returns exit condition
|
|
|
|
|
|
|
|
|
|
DISPLAY.C
|
|
|
|
|
- removed usage of Chipset.dispon variable
|
|
|
|
|
|
|
|
|
|
EMU48.C
|
|
|
|
|
- bugfix in function SetCommList(), detection of COM ports larger
|
|
|
|
|
than COM9 failed
|
|
|
|
|
- moved shutdown of CPU emulation thread from the WinMain() to the
|
|
|
|
|
OnDestroy() function to avoid trouble with closed window DC
|
|
|
|
|
|
|
|
|
|
EMU48.DSP
|
|
|
|
|
- added configuration "Release Unicode"
|
|
|
|
|
- added configuration "Debug Unicode"
|
|
|
|
|
|
|
|
|
|
EMU48.RC
|
|
|
|
|
- added "Stack" menu entries
|
|
|
|
|
- added accelerator key in "Find" dialog
|
|
|
|
|
- changed version and copyright
|
|
|
|
|
|
|
|
|
|
I28F160.C
|
|
|
|
|
- bugfix in table byQueryTab[], content of not specified offset 0x03
|
|
|
|
|
is 0x02; offset 0x1B and 0x1D contain 0x30 in the real chip
|
|
|
|
|
- changed function WrStateE8N(), WrStateE8D() and WrState60D(), use
|
|
|
|
|
device specific data from query table instead of program constants
|
|
|
|
|
- bugfix in function WrStateE8C(), don't set the BWSLBS bit in the
|
|
|
|
|
status register on trying to set a 0 bit
|
|
|
|
|
- changed function WrState40D(), removed useless increment
|
|
|
|
|
- bugfix in function WrState30C(), don't set the ECLBS bit in the
|
|
|
|
|
status register when trying to erase a lock bit with WP# = low
|
|
|
|
|
- changed function WrState20C() and WrState30C(), use device
|
|
|
|
|
dimensions from query table now and optimized data filling part
|
|
|
|
|
- bugfix in function WrState60D(), the BWSLBS or the ECLBS bit in
|
|
|
|
|
the status register is set when trying to modify lock bits with
|
|
|
|
|
WP# = low
|
|
|
|
|
- bugfix in function RdStateId() and RdStateQuery(), Flash commands
|
|
|
|
|
"Read Identifier Codes" and "Read Query" now behave on illegal
|
|
|
|
|
address access like the original calculator
|
|
|
|
|
|
|
|
|
|
RESOURCE.H
|
|
|
|
|
- added definitions
|
|
|
|
|
|
|
|
|
|
SERIAL.C
|
|
|
|
|
- bugfix in function SerialThread(), added implementation of the RER
|
|
|
|
|
bit in the RCS (0x111) register for receiver BREAK condition
|
|
|
|
|
- bugfix in function CommOpen(), opening COM ports larger than COM9
|
|
|
|
|
failed
|
|
|
|
|
- bugfix in function CommTxBRK(), added LPB (Loop Back) emulation
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Service Pack 27 for Emu48 Version 1.0
|
|
|
|
|
|
|
|
|
|
DEBUGGER.C
|
|
|
|
|
- various changes in many functions for implementation of the module
|
|
|
|
|
memory view
|
|
|
|
|
- changed function CreateToolbar(), replaced InitCommonControlsEx()
|
|
|
|
|
with InitCommonControls() function call to be compatible with the
|
|
|
|
|
project version 0x0200
|
|
|
|
|
|
|
|
|
|
EMU48.C
|
|
|
|
|
- changed function Disasm(), can use value of external port2 size
|
|
|
|
|
directly now
|
|
|
|
|
|
|
|
|
|
EMU48.RC
|
|
|
|
|
- added "Mapping" menu entries
|
|
|
|
|
- changed version
|
|
|
|
|
|
|
|
|
|
FILES.C
|
|
|
|
|
- changed function MapPort2(), don't limit port2 to 128KB here
|
|
|
|
|
|
|
|
|
|
I28F160.C
|
|
|
|
|
- bugfix in function WrStateE8N(), a "Write to Buffer" command
|
|
|
|
|
failed when requesting for the buffer length
|
|
|
|
|
|
|
|
|
|
KML.C
|
|
|
|
|
- added VOID as parameter in function prototypes
|
|
|
|
|
- replaced structure names changed in KML.H into the new ones
|
|
|
|
|
|
|
|
|
|
KML.H
|
|
|
|
|
- changed structure names Token to KmlToken, Line to KmlLine, Block
|
|
|
|
|
to KmlBlock, Button to KmlButton and Annunciator to KmlAnnunciator
|
|
|
|
|
because the Line and Button definition clash with the MacOS API
|
|
|
|
|
|
|
|
|
|
MOPS.C
|
|
|
|
|
- changed function MapP2(), limit port2 mapping size to 128KB here
|
|
|
|
|
|
|
|
|
|
OPCODES.C
|
|
|
|
|
- changed function o138(), o139(), o13A(), o13B(), o13C(), o13D(),
|
|
|
|
|
o13E(), o13F(), o19d2(), o1Ad4(), o1Dd2() and o1Ed4(), added big
|
|
|
|
|
endian machine support (use define BIGENDIAN)
|
|
|
|
|
|
|
|
|
|
PCH.H
|
|
|
|
|
- added _WIN32_IE definition for project version
|
|
|
|
|
|
|
|
|
|
RESOURCE.H
|
|
|
|
|
- added definitions
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Service Pack 26 for Emu48 Version 1.0
|
|
|
|
|
|
|
|
|
|
DEBUGGER.C
|
|
|
|
|
- bugfix in function ViewMemWnd(), wrong ASCII view of characters in
|
|
|
|
|
text area, strings are saved in LSB, MSB order
|
|
|
|
|
- changed function Debugger(), save and restore debugger window
|
|
|
|
|
position in session now
|
|
|
|
|
- bugfix in function Debugger(), missing initialization of menu
|
|
|
|
|
entry CODE Object Breakpoints
|
|
|
|
|
- bugfix in function OnFindOK(), search for ASCII character in
|
|
|
|
|
LSB, MSB order
|
|
|
|
|
|
|
|
|
|
DISPLAY.C
|
|
|
|
|
- bugfix in function ResizeWindow(), 'Offset' command in KML script
|
|
|
|
|
section 'Background' hasn't worked
|
|
|
|
|
|
|
|
|
|
EMU48.C
|
|
|
|
|
- added Critical Section initialization
|
|
|
|
|
- bugfix in function OnPaint(), 'Offset' command in KML script
|
|
|
|
|
section 'Background' hasn't worked
|
|
|
|
|
|
|
|
|
|
EMU48.H
|
|
|
|
|
- extern declaration of global variable and function
|
|
|
|
|
|
|
|
|
|
EMU48.RC
|
|
|
|
|
- changed version
|
|
|
|
|
|
|
|
|
|
FILES.C
|
|
|
|
|
- changed functions ResetDocument(), ResetBackup() and
|
|
|
|
|
InitializeOFN(), replaced function FillMemory() with ZeroMemory()
|
|
|
|
|
- changed function OpenDocument(), can handle various Chipset sizes
|
|
|
|
|
now
|
|
|
|
|
|
|
|
|
|
KML.C
|
|
|
|
|
- bugfix in function DrawButton() and ClipButton, 'Offset' command
|
|
|
|
|
in KML script section 'Background' hasn't worked
|
|
|
|
|
|
|
|
|
|
MOPS.C
|
|
|
|
|
- bugfix function WriteIO(), when writing to the IOC (0x110)
|
|
|
|
|
register a possible USRQ interrupt wasn't generated
|
|
|
|
|
- changed function WriteIO(), writing the RER bit of the RCS (0x111)
|
|
|
|
|
register and writing the TBF bit of the TBR (0x116,0x117) register
|
|
|
|
|
is thread save now
|
|
|
|
|
- bugfix function WriteIO(), added implementation of the BRK bit in
|
|
|
|
|
the TCS (0x112) register
|
|
|
|
|
- changed function WriteIO(), removed NINT2 line update at writing
|
|
|
|
|
TBR (0x116,0x117) register, is doing in function CommTransmit()
|
|
|
|
|
|
|
|
|
|
PCH.H
|
|
|
|
|
- added include ctype.h
|
|
|
|
|
|
|
|
|
|
SERIAL.C
|
|
|
|
|
- minimized size of PC receive buffer
|
|
|
|
|
- bugfix in function SerialThread(), CommOpen(), CommClose() and
|
|
|
|
|
CommTransmit(), added implementation of the RER bit (only for
|
|
|
|
|
framing errors) in the RCS (0x111) register and of the TBF and TBZ
|
|
|
|
|
bit in the TCS (0x112) register
|
|
|
|
|
- new function CommTxBRK(), handle BREAK condition on Tx line
|
|
|
|
|
|
|
|
|
|
|
2024-03-19 22:37:03 +01:00
|
|
|
|
Service Pack 25 for Emu48 Version 1.0
|
|
|
|
|
|
|
|
|
|
DDESERV.C
|
|
|
|
|
- replaced variable type _TCHAR with TCHAR
|
|
|
|
|
- added some UNREFERENCED_PARAMETER statements
|
|
|
|
|
|
|
|
|
|
DEBUGGER.C
|
|
|
|
|
- replaced variable type _TCHAR with TCHAR
|
|
|
|
|
- added UNREFERENCED_PARAMETER statement
|
|
|
|
|
- bugfix in function UpdateCodeWnd(), used uninitialized variables
|
|
|
|
|
at first call and optimized actual address searching
|
|
|
|
|
- changed function UpdateStackWnd(), save stack content also as
|
|
|
|
|
value for easier access
|
|
|
|
|
- changed function OnKeyF6(), optimized getting address of selected
|
|
|
|
|
item
|
|
|
|
|
- changed function OnKeyF8(), optimized GOSUB, GOSUBL, GOSBVL
|
|
|
|
|
decoding
|
|
|
|
|
- replaced functions OnNOP3Break(), OnRplBreak() and
|
|
|
|
|
OnInterruptsStepOverInt() with OnToggleMenuItem()
|
|
|
|
|
- changed function OnDblClick(), double click on stack window item
|
|
|
|
|
now shows the address content in the code window
|
|
|
|
|
- bugfix in function InfoIntr(), variable lIndex may be used without
|
|
|
|
|
having been initialized
|
|
|
|
|
|
|
|
|
|
DISASM.C
|
|
|
|
|
- replaced variable type _TCHAR with TCHAR
|
|
|
|
|
- bugfix in function disassemble(), the r=-r fs opcodes showed
|
|
|
|
|
always as r=r-1 fs opcodes
|
|
|
|
|
|
|
|
|
|
DISPLAY.C
|
|
|
|
|
- added UNICODE support in debug output parts
|
|
|
|
|
- used wrong black and white RGB definition, so default display
|
|
|
|
|
color was white on black background and not vice versa
|
|
|
|
|
- changed function UpdateContrast(), optimization
|
|
|
|
|
|
|
|
|
|
EMU48.C
|
|
|
|
|
- replaced variable type _TCHAR with TCHAR
|
|
|
|
|
- changed function CopyItemsToClipboard(), SetCommList(),
|
|
|
|
|
OnStackCopy() and OnStackPaste(), added some brackets
|
|
|
|
|
|
|
|
|
|
EMU48.H
|
|
|
|
|
- replaced variable type _TCHAR with TCHAR
|
|
|
|
|
- added MapData defines
|
|
|
|
|
- extern declaration of global variable and function
|
|
|
|
|
- removed declaration of Npack() and Nunpack()
|
|
|
|
|
|
|
|
|
|
EMU48.RC
|
|
|
|
|
- changed properties of IDC_DEBUG_STACK
|
|
|
|
|
- added Menuitem Debug "CODE Objects Breakpoints" in debugger menu
|
|
|
|
|
- changed version and copyright
|
|
|
|
|
|
|
|
|
|
ENGINE.C
|
|
|
|
|
- replaced variable type _TCHAR with TCHAR
|
|
|
|
|
- changed function Debugger(), added DOCODE breakpoint handling
|
|
|
|
|
|
|
|
|
|
EXTERNAL.C
|
|
|
|
|
- added ops.h in header definition
|
|
|
|
|
|
|
|
|
|
FILES.C
|
|
|
|
|
- replaced variable type _TCHAR with TCHAR
|
|
|
|
|
- added ops.h in header definition
|
|
|
|
|
- changed function PatchRom(), added typecast for GCC compiler
|
|
|
|
|
- bugfix in function PatchRom(), lines beginning with a remark were
|
|
|
|
|
sometimes decoded as a valid line
|
|
|
|
|
- bugfix in function MapPort2(), 32KB cards were rejected
|
|
|
|
|
|
|
|
|
|
I28F160.C
|
|
|
|
|
- changed table definitions fnWrState[] and fnRdState[], removed a
|
|
|
|
|
CONST statement
|
|
|
|
|
|
|
|
|
|
KML.C
|
|
|
|
|
- replaced variable type _TCHAR with TCHAR
|
|
|
|
|
- changed function ParseLines(), added some brackets
|
|
|
|
|
- changed prototypes of function GetStringParam(), GetIntegerParam()
|
|
|
|
|
and SkipLines(), fixed argument mismatch
|
|
|
|
|
- changed function RunLine(), added default case for GCC compiler
|
|
|
|
|
- changed function SkipWhite(), If() and InitKML(), removed unused
|
|
|
|
|
variables
|
|
|
|
|
- changed function KillKML(), optimizations
|
|
|
|
|
- changed function DrawAnnunciator(), optimizations
|
|
|
|
|
|
|
|
|
|
KML.H
|
|
|
|
|
- replaced variable type _TCHAR with TCHAR
|
|
|
|
|
|
|
|
|
|
MOPS.C
|
|
|
|
|
- added UNICODE support in debug output parts
|
|
|
|
|
- added ops.h in header definition
|
|
|
|
|
- moved MapData defines to EMU48.H
|
|
|
|
|
- made function MapData() public
|
|
|
|
|
- changed function Npeek(), Nread() and Nwrite(), added brackets for
|
|
|
|
|
better code understanding
|
|
|
|
|
|
|
|
|
|
OPCODES.C
|
|
|
|
|
- changed function o8Cd4() and o8Ed4(), added some spaces for better
|
|
|
|
|
code understanding
|
|
|
|
|
|
|
|
|
|
OPS.H
|
|
|
|
|
- changed function Npack() and Nunpack(), made them static
|
|
|
|
|
- changed function Nneg(), added some brackets
|
|
|
|
|
|
|
|
|
|
RESOURCE.H
|
|
|
|
|
- added definition
|
|
|
|
|
|
|
|
|
|
RPL.C
|
|
|
|
|
- added ops.h in header definition
|
|
|
|
|
- added missing HP39/40G entries in RAM entry table
|
|
|
|
|
|
|
|
|
|
SERIAL.C
|
|
|
|
|
- replaced variable type _TCHAR with TCHAR
|
|
|
|
|
- changed function UpdateUSRQ(), added return type
|
|
|
|
|
- changed function CommTransmit() and CommReceive(), derivate
|
|
|
|
|
interrupt generation from the state of the USRQ bit now
|
|
|
|
|
|
|
|
|
|
SETTINGS.C
|
|
|
|
|
- replaced variable type _TCHAR with TCHAR
|
|
|
|
|
- bugfix in registry macro WriteString(), used wrong data size in
|
|
|
|
|
UNICODE mode
|
|
|
|
|
- bugfix in function GetRegistryString(), returned wrong string
|
|
|
|
|
length and used wrong read buffer size in UNICODE mode
|
|
|
|
|
|
|
|
|
|
TIMER.C
|
|
|
|
|
- added ops.h in header definition
|
|
|
|
|
- changed function MAX(), had no definition of return value
|
|
|
|
|
- changed function RescheduleT2(), added some brackets
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Service Pack 24 for Emu48 Version 1.0
|
|
|
|
|
|
|
|
|
|
DBGTOOL.BMP
|
|
|
|
|
- bitmap with debugger toolbar buttons
|
|
|
|
|
|
|
|
|
|
DEBUGGER.C
|
|
|
|
|
- added toolbar to debugger window
|
|
|
|
|
- changed function EnterBreakpoint(), DrawBreakpoint() and
|
|
|
|
|
EditBreakpoint(), added RPL breakpoint handling
|
|
|
|
|
- changed function OnToggleCheck(), changed method of item redraw
|
|
|
|
|
- changed function EditBreakpoint(), added multiple selection for
|
|
|
|
|
deleting breakpoints
|
|
|
|
|
|
|
|
|
|
DEBUGGER.H
|
|
|
|
|
- added new breakpoint define
|
|
|
|
|
|
|
|
|
|
DISASM.C
|
|
|
|
|
- bugfix in function rn_map(), handle NULL pointer pages now
|
|
|
|
|
- bugfix in function disasm_8(), fixed broken opcode 80810
|
|
|
|
|
mnemonic
|
|
|
|
|
|
|
|
|
|
EMU48.C
|
|
|
|
|
- changed function SetWindowTitle(), optimization
|
|
|
|
|
|
|
|
|
|
EMU48.DSP
|
|
|
|
|
- added library comctl32.lib
|
|
|
|
|
|
|
|
|
|
EMU48.RC
|
|
|
|
|
- added debugger toolbar
|
|
|
|
|
- added RPL breakpoint in "Enter breakpoint" dialog
|
|
|
|
|
- changed version and copyright
|
|
|
|
|
|
|
|
|
|
ENGINE.C
|
|
|
|
|
- changed function Debugger(), added RPL breakpoint handling
|
|
|
|
|
|
|
|
|
|
PCH.H
|
|
|
|
|
- added include commctrl.h
|
|
|
|
|
|
|
|
|
|
RESOURCE.H
|
|
|
|
|
- added definitions
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Service Pack 23 for Emu48 Version 1.0
|
|
|
|
|
|
|
|
|
|
DDESERV.C
|
|
|
|
|
- replaced numbers with state machines defines
|
|
|
|
|
|
|
|
|
|
DEBUGGER.C
|
|
|
|
|
- new function DisableMenuKeys(), replace menu item disable in
|
|
|
|
|
function OnKeyF5() and OnKeyF9()
|
|
|
|
|
- bugfix in function StrToReg() and OnLButtonUp(), used ASCII
|
|
|
|
|
instead of a member function of TCHAR.H
|
|
|
|
|
- changed function OnLButtonUp(), skip automatically disabled
|
|
|
|
|
windows
|
|
|
|
|
- bugfix in function OnKeyF9(), "Run to Cursor" menu item wasn't
|
|
|
|
|
disabled
|
|
|
|
|
|
|
|
|
|
DISASM.C
|
|
|
|
|
- bugfix in function disasm_8(), illegal opcodes beginning with 8081
|
|
|
|
|
crashed emulator, illegal opcodes beginning with 818f were shown
|
|
|
|
|
as r=r+CON fs,n and r=r-CON fs,n opcodes, illegal opcodes
|
|
|
|
|
beginning with 819f were shown as rSRB.F opcodes
|
|
|
|
|
|
|
|
|
|
EMU48.C
|
|
|
|
|
- replaced numbers with state machines defines
|
|
|
|
|
- moved the ShowWindow() call in main program behind the state file
|
|
|
|
|
load to avoid viewing the window at the standard startup position
|
|
|
|
|
|
|
|
|
|
EMU48.RC
|
|
|
|
|
- changed version and copyright
|
|
|
|
|
|
|
|
|
|
ENGINE.C
|
|
|
|
|
- replaced numbers with state machines defines
|
|
|
|
|
- bugfix in function Debugger(), checked wrong data breakpoint
|
|
|
|
|
addresses in connection with the P,WP,XS,S,M fields
|
|
|
|
|
|
|
|
|
|
FILES.C
|
|
|
|
|
- bugfix in function SaveDocument(), when the emulator window is
|
|
|
|
|
minimized the wrong window position was saved in the Chipset
|
|
|
|
|
structure
|
|
|
|
|
|
|
|
|
|
IO.H
|
|
|
|
|
- changed LINECOUNT MSB definitions
|
|
|
|
|
|
|
|
|
|
KEYBOARD.C
|
|
|
|
|
- replaced numbers with state machines defines
|
|
|
|
|
|
|
|
|
|
KML.C
|
|
|
|
|
- replaced numbers with state machines defines
|
|
|
|
|
|
|
|
|
|
MOPS.C
|
|
|
|
|
- bugfix in function CpuReset(), BS-FF must be cleared as well
|
|
|
|
|
|
|
|
|
|
OPCODES.C
|
|
|
|
|
- bugfix in function o807(), added BS-FF reset handling
|
|
|
|
|
- removed function o_invalid()
|
|
|
|
|
|
|
|
|
|
OPCODES.H
|
|
|
|
|
- removed prototype of function o_invalid()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Service Pack 22 for Emu48 Version 1.0
|
|
|
|
|
|
|
|
|
|
DEBUGGER.C
|
|
|
|
|
- moved global variables to EMU48.C and ENGINE.C
|
|
|
|
|
- changed function ViewCodeWnd() and NotifyDebugger(), changed "->"
|
|
|
|
|
PC position marker to "-R" on RPL breakpoints
|
|
|
|
|
- bugfix in function DisableDebugger(), don't destroy handle before
|
|
|
|
|
windows closed
|
|
|
|
|
- changed function Debugger(), set signal for window and last
|
|
|
|
|
instruction buffer closed at end of WM_DESTROY message handler,
|
|
|
|
|
init additional variables
|
|
|
|
|
- added implementation of "Find" dialog box
|
|
|
|
|
- bugfix in function NewValue(), EnterAddr() and EnterBreakpoint(),
|
|
|
|
|
used ASCII instead of a member function of TCHAR.H
|
|
|
|
|
- changed function OnToggleCheck(), OnDrawBreakWnd(),
|
|
|
|
|
DrawBreakpoint() and EditBreakpoint(), now the list box element
|
|
|
|
|
use a link to the corresponding breakpoint element
|
|
|
|
|
- bugfix in function OnDrawBreakWnd(), sometimes the old focus
|
|
|
|
|
rectangle wasn't purged
|
|
|
|
|
- changed function EditBreakpoint(), checkbox can also be toggled
|
|
|
|
|
with the space key now
|
|
|
|
|
- bugfix in function OnEditBreakpoint(), redrawed code window always
|
|
|
|
|
at PC position and not at actual address
|
|
|
|
|
|
|
|
|
|
DEBUGGER.H
|
|
|
|
|
- moved extern declaration of global variables to EMU48.H
|
|
|
|
|
|
|
|
|
|
DISPLAY.C
|
|
|
|
|
- bugfix in function UpdateDisplayPointers(), UpdateMainDisplay(),
|
|
|
|
|
UpdateMenuDisplay(), WriteToMainDisplay(), WriteToMenuDisplay(),
|
|
|
|
|
calculated wrong display areas when LINECOUNT (0x128,0x129)
|
|
|
|
|
register was zero
|
|
|
|
|
|
|
|
|
|
EMU48.C
|
|
|
|
|
- replaced numbers with state machines defines
|
|
|
|
|
- added global variable from DEBUGGER.C
|
|
|
|
|
- changed function UpdateWindowStatus(), use groups for
|
|
|
|
|
enable/disable menu items now
|
|
|
|
|
- changed function SettingsProc(), use global variable if COM port
|
|
|
|
|
is open instead of calling CommConnect()
|
|
|
|
|
- bugfix in function OnPaint(), calculated wrong rectangle for
|
|
|
|
|
display area when LINECOUNT (0x128,0x129) register was zero
|
|
|
|
|
- bugfix in function OnDropFiles(), OnStackPaste(), OnObjectLoad(),
|
|
|
|
|
can't switch on if in debugger mode
|
|
|
|
|
- changed function WinMain(), added non modal "Find" dialog box in
|
|
|
|
|
main message handler
|
|
|
|
|
- bugfix in function WinMain(), fixed a resource leak
|
|
|
|
|
|
|
|
|
|
EMU48.DSP
|
|
|
|
|
- added library advapi32.lib
|
|
|
|
|
|
|
|
|
|
EMU48.H
|
|
|
|
|
- removed extern declaration of global variable and function
|
|
|
|
|
- removed COM port state defines
|
|
|
|
|
- added state machine defines
|
|
|
|
|
- extern declaration of global variables
|
|
|
|
|
- changed function prototype
|
|
|
|
|
|
|
|
|
|
EMU48.RC
|
|
|
|
|
- changed properties of IDC_BREAKEDIT_WND
|
|
|
|
|
- added "Find" dialog
|
|
|
|
|
- changed version
|
|
|
|
|
|
|
|
|
|
ENGINE.C
|
|
|
|
|
- replaced numbers with state machines defines
|
|
|
|
|
- made COM port open flag public
|
|
|
|
|
- added global variables from DEBUGGER.C
|
|
|
|
|
- changed function Debugger(), a RPL breakpoint is now set on the
|
|
|
|
|
destination address of a PC=(A) or a PC=(C) instruction and the
|
|
|
|
|
RPL breakpoint detection with a prior A=DAT0 A D0=D0+ 5 sequence
|
|
|
|
|
has been removed
|
|
|
|
|
- changed function CheckSerial(), use return value of CommOpen()
|
|
|
|
|
instead of calling CommConnect()
|
|
|
|
|
- changed function WaitForSleepState(), close debugger before going
|
|
|
|
|
into sleep state
|
|
|
|
|
- changed function SwitchToState(), changed detection of emulation
|
|
|
|
|
thread termination and debugger now can be active when changing
|
|
|
|
|
from Run to Sleep state
|
|
|
|
|
|
|
|
|
|
FILES.C
|
|
|
|
|
- changed function OpenDocument(), because of changed function
|
|
|
|
|
CpuReset() additional work for automatic restart on changed ROM
|
|
|
|
|
needed
|
|
|
|
|
|
|
|
|
|
IO.H
|
|
|
|
|
- added BITOFFSET definition
|
|
|
|
|
|
|
|
|
|
MOPS.C
|
|
|
|
|
- removed variable ir_ctrl_acc, was never used
|
|
|
|
|
- bugfix in function CpuReset(), changed some initial settings
|
|
|
|
|
- bugfix in function WriteIO(), force new COM port initialization
|
|
|
|
|
when the EIRU bit in the IRC (0x11A) register has changed
|
|
|
|
|
- bugfix in function WriteIO(), reading from the LINECOUNT
|
|
|
|
|
(0x128,0x129) register destroyed the settings for the
|
|
|
|
|
Chipset.lcounter variable
|
|
|
|
|
|
|
|
|
|
RESOURCE.H
|
|
|
|
|
- added some definitions
|
|
|
|
|
|
|
|
|
|
RPL.C
|
|
|
|
|
- changed function RPL_CreateTemp(), changed remarks
|
|
|
|
|
|
|
|
|
|
SERIAL.C
|
|
|
|
|
- removed function CommConnect(), not used any more
|
|
|
|
|
- changed function CommOpen(), changed function return type
|
|
|
|
|
- bugfix in function CommOpen(), receiver state variables weren't
|
|
|
|
|
resetted
|
|
|
|
|
- bugfix in function CommClose(), changed detection of thread
|
|
|
|
|
termination and fixed a resource leak
|
|
|
|
|
- bugfix in function CommTransmit(), receive buffer may be
|
|
|
|
|
overflowed when LPB (Loop Back) bit was set
|
|
|
|
|
|
|
|
|
|
SETTINGS.C
|
|
|
|
|
- prepared for registry support
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Service Pack 21 for Emu48 Version 1.0
|
|
|
|
|
|
|
|
|
|
CHECKBOX.BMP
|
|
|
|
|
- bitmap with checked and unchecked box
|
|
|
|
|
|
|
|
|
|
DDESERV.C
|
|
|
|
|
- prepared for UNICODE support
|
|
|
|
|
|
|
|
|
|
DEBUGGER.C
|
|
|
|
|
- prepared for UNICODE support
|
|
|
|
|
- added implementation of "Run to Cursor"
|
|
|
|
|
- added HP39/40G stuff to function InitBsArea() and UpdateMiscWnd()
|
|
|
|
|
- added Enable/Disable of breakpoints in the Edit breakpoints dialog
|
|
|
|
|
- added breakpoint load/save file functions
|
|
|
|
|
- bugfix in function NewValue(), EnterAddr(), EnterBreakpoint(),
|
|
|
|
|
EditBreakpoint() and InfoIntr(), try to get a window handle at
|
|
|
|
|
begin of a dialog message handler cause illegal handles in some
|
|
|
|
|
cases
|
|
|
|
|
|
|
|
|
|
DEBUGGER.H
|
|
|
|
|
- extern declaration of global variable and functions
|
|
|
|
|
|
|
|
|
|
DISASM.C
|
|
|
|
|
- prepared for UNICODE support
|
|
|
|
|
- changed function rn_port2(), select internal or external port2
|
|
|
|
|
memory by the Chipset.Port2Size variable now
|
|
|
|
|
|
|
|
|
|
DISPLAY.C
|
|
|
|
|
- prepared for UNICODE support
|
|
|
|
|
|
|
|
|
|
EMU48.C
|
|
|
|
|
- prepared for UNICODE support
|
|
|
|
|
- added HP39/40G stuff to function UpdateWindowStatus(),
|
|
|
|
|
SettingsProc(), OnDropFiles() and Disasm()
|
|
|
|
|
- bugfix in function OnPaint(), redraw display and button area even
|
|
|
|
|
if emulation is suspended, redraw only requested bitmap area and
|
|
|
|
|
redraw display without updating bitmap with display data
|
|
|
|
|
- bugfix in function OnFileNew(), overwrite title only on new
|
|
|
|
|
document
|
|
|
|
|
|
|
|
|
|
EMU48.H
|
|
|
|
|
- prepared for UNICODE support
|
|
|
|
|
|
|
|
|
|
EMU48.ICO
|
|
|
|
|
- deleted unused device images
|
|
|
|
|
|
|
|
|
|
EMU48.RC
|
|
|
|
|
- changed properties of IDC_BREAKEDIT_WND
|
|
|
|
|
- added Menuitem Debug "Run to Cursor" in debugger menu
|
|
|
|
|
- changed version and copyright
|
|
|
|
|
|
|
|
|
|
ENGINE.C
|
|
|
|
|
- prepared for UNICODE support
|
|
|
|
|
- added part for debugger function "Run to Cursor"
|
|
|
|
|
|
|
|
|
|
EXTERNAL.C
|
|
|
|
|
- added HP39/40G stuff to the SFLAG53_56 definition
|
|
|
|
|
|
|
|
|
|
FILES.C
|
|
|
|
|
- prepared for UNICODE support
|
|
|
|
|
- added new document type for HP39/40G in several functions
|
|
|
|
|
- bugfix in function MapPort2(), in the first program instance in
|
|
|
|
|
not shared mode a read only port2 file couldn't be loaded
|
|
|
|
|
- bugfix in function ResetDocument(), delete MMU mappings as well
|
|
|
|
|
- bugfix in function OpenDocument(), ask for new KML script when
|
|
|
|
|
emulator state file and KML script file use different 'Model'
|
|
|
|
|
settings
|
|
|
|
|
- changed function OpenDocument() and SaveDocument(), added debugger
|
|
|
|
|
breakpoint data handling
|
|
|
|
|
|
|
|
|
|
IO.H
|
|
|
|
|
- added LINECOUNT definition
|
|
|
|
|
|
|
|
|
|
KML.C
|
|
|
|
|
- prepared for UNICODE support
|
|
|
|
|
- added "Class" keyword in Global section
|
|
|
|
|
- deleted function IsDigit(), replaced by function _istdigit()
|
|
|
|
|
- bugfix in function AddToLog(), fixed a memory leak
|
|
|
|
|
- new function MapKMLFile(), map KML file into memory
|
|
|
|
|
- new functions iSqrt(), AdjustPixel() and TransparentCircle(),
|
|
|
|
|
subroutines for new button type
|
|
|
|
|
- changed function DrawButton(), changed button type 5 (was same
|
|
|
|
|
implementation as type 0) to draw transparent circles
|
|
|
|
|
- changed function RefreshButtons(), redraw only buttons in
|
|
|
|
|
requested area
|
|
|
|
|
|
|
|
|
|
KML.H
|
|
|
|
|
- prepared for UNICODE support
|
|
|
|
|
- added TOK_CLASS definition
|
|
|
|
|
|
|
|
|
|
MOPS.C
|
|
|
|
|
- new function UpdateDisplay(), handle display update
|
|
|
|
|
- changed function MapP2(), select internal or external port2 memory
|
|
|
|
|
by the Chipset.Port2Size variable now
|
|
|
|
|
- added HP39/40G stuff to function MapROM(), RomSwitch(), Nread(),
|
|
|
|
|
Nwrite() and ReadIO()
|
|
|
|
|
- bugfix in function Nwrite(), update display with address content
|
|
|
|
|
- changed function ReadIO(), set RX bit in the RCS (0x111) register
|
|
|
|
|
for no character receive
|
|
|
|
|
- bugfix in function ReadIO(), wrong implementation of TBR register
|
|
|
|
|
(0x116,0x117), read return last written byte
|
|
|
|
|
- bugfix in function WriteIO(), clearing the SON bit in the IOC
|
|
|
|
|
(0x110) register clears also the IOC (0x110), RCS (0x111), TCS
|
|
|
|
|
(0x112), RBR (0x114,0x115) and TBR (0x116,0x117) register
|
|
|
|
|
- bugfix in function WriteIO(), writing to the RCS (0x111), TCS
|
|
|
|
|
(0x111) and TBR (0x116,0x117) register only works when the SON bit
|
|
|
|
|
in the IOC (0x110) register is set
|
|
|
|
|
|
|
|
|
|
OPCODES.C
|
|
|
|
|
- prepared for UNICODE support
|
|
|
|
|
- removed InfoMessage in SREQ? opcode
|
|
|
|
|
|
|
|
|
|
PCH.H
|
|
|
|
|
- added include tchar.h
|
|
|
|
|
|
|
|
|
|
RESOURCE.H
|
|
|
|
|
- added some definitions
|
|
|
|
|
- removed IDC_DISASM_MNEMONICS
|
|
|
|
|
|
|
|
|
|
RPL.C
|
|
|
|
|
- bugfix in function Metakernel(), check for port1 memory before
|
|
|
|
|
reading
|
|
|
|
|
|
|
|
|
|
SERIAL.C
|
|
|
|
|
- prepared for UNICODE support
|
|
|
|
|
- bugfix in function UpdateUSRQ(), USRQ bit in SRQ1 (0x118) register
|
|
|
|
|
only set on serial interrupt condition when UART enabled
|
|
|
|
|
|
|
|
|
|
SETTINGS.C
|
|
|
|
|
- prepared for UNICODE support
|
|
|
|
|
- changed function ReadSettings(), use variable content as default
|
|
|
|
|
|
|
|
|
|
TIMER.C
|
|
|
|
|
- bugfix in function StartTimers(), check for timer interrupts at
|
|
|
|
|
timer start
|
|
|
|
|
|
|
|
|
|
|
2024-03-19 22:36:03 +01:00
|
|
|
|
Service Pack 20 for Emu48 Version 1.0
|
|
|
|
|
|
|
|
|
|
DEBUGGER.C
|
|
|
|
|
- changed function UpdateStackWnd(), index of topmost item is now
|
|
|
|
|
saved at content update
|
|
|
|
|
- changed function CheckBreakpoint(), allow breakpoints in an area
|
|
|
|
|
now (used by memory breakpoints to get all touched addresses on a
|
|
|
|
|
r=DATx fs access)
|
|
|
|
|
|
|
|
|
|
DEBUGGER.H
|
|
|
|
|
- changed prototype of function CheckBreakpoint()
|
|
|
|
|
|
|
|
|
|
EMU48.C
|
|
|
|
|
- use semaphores to avoid GDI trouble with NT in OnPaint()
|
|
|
|
|
- specify processor affinity for the cpu emulation thread to avoid
|
|
|
|
|
problems with the QueryPerformanceCounter() function
|
|
|
|
|
|
|
|
|
|
EMU48.H
|
|
|
|
|
- extern declaration of global variable
|
|
|
|
|
|
|
|
|
|
EMU48.RC
|
|
|
|
|
- fixed multiple use of accelerator key in debugger menu
|
|
|
|
|
- changed version and copyright
|
|
|
|
|
|
|
|
|
|
ENGINE.C
|
|
|
|
|
- bugfix in function Debugger(), check complete address range of
|
|
|
|
|
memory access area
|
|
|
|
|
- workaround for Win2k in function AdjustSpeed(), when command
|
|
|
|
|
sequence took over 50ms new synchronizing of the emulation slow
|
|
|
|
|
down part
|
|
|
|
|
- bugfix in function WorkerThread(), update NINT and NINT2 lines
|
|
|
|
|
after port status changing
|
|
|
|
|
|
|
|
|
|
KML.C
|
|
|
|
|
- use semaphores to avoid GDI trouble with NT in RefreshButtons()
|
|
|
|
|
|
|
|
|
|
MOPS.C
|
|
|
|
|
- bugfix in function UckBit() and F4096Hz(), depending on clock
|
|
|
|
|
value functions returned wrong results
|
|
|
|
|
|
|
|
|
|
OPCODES.C
|
|
|
|
|
- moved address field start and length array from OPS.H and made
|
|
|
|
|
them public
|
|
|
|
|
|
|
|
|
|
OPCODES.H
|
|
|
|
|
- extern declaration of global address field start and length
|
|
|
|
|
variables
|
|
|
|
|
|
|
|
|
|
OPS.H
|
|
|
|
|
- moved address field start and length array to OPCODES.C
|
|
|
|
|
- bugfix in function FASTPTR(), address area is only 5 nibbles long
|
|
|
|
|
|
|
|
|
|
RESOURCE.H
|
|
|
|
|
- deleted several unused definitions
|
|
|
|
|
|
|
|
|
|
RPL.C
|
|
|
|
|
- added function Metakernel() to detect MK2.30 and prior
|
|
|
|
|
- changed function RPL_Pick() and RPL_Push() to support
|
|
|
|
|
"Save/Load Object" with a stack incompatible Metakernel versions
|
|
|
|
|
|
|
|
|
|
SERIAL.C
|
|
|
|
|
- use own OVERLAPPED stucture for reading and writing
|
|
|
|
|
- bugfix in function CommClose(), added additional delay to fix
|
|
|
|
|
problems with some Kermit server
|
|
|
|
|
- bugfix in function CommTransmit(), wait until write completed
|
|
|
|
|
|
|
|
|
|
SETTINGS.C
|
|
|
|
|
- changed function ReadSettings(), use variable content as default
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Service Pack 19 for Emu48 Version 1.0
|
|
|
|
|
|
|
|
|
|
DEBUGGER.C
|
|
|
|
|
- several modifications for memory breakpoint handling
|
|
|
|
|
- added step over interrupt code part setting
|
|
|
|
|
- bugfix in function NewValue(), at wrong input numbers ignore input
|
|
|
|
|
string at <CANCEL> and set focus to edit control
|
|
|
|
|
- bugfix in function EnterAddr(), at wrong input numbers set focus
|
|
|
|
|
to edit control
|
|
|
|
|
|
|
|
|
|
DEBUGGER.H
|
|
|
|
|
- added breakpoint type defines
|
|
|
|
|
- extern declaration of global variable
|
|
|
|
|
- changed prototype of function CheckBreakpoint()
|
|
|
|
|
|
2024-03-19 22:38:33 +01:00
|
|
|
|
DISPLAY.C
|
|
|
|
|
- added io.h in header definition
|
|
|
|
|
- bugfix in function CreateMainBitmap(), check error condition and
|
|
|
|
|
realize palette also in memory DC
|
|
|
|
|
- bugfix in CreateLcdBitmap(), must set color palette for LCD DC
|
|
|
|
|
- bugfix in function UpdateAnnunciators(), annunciators are off if
|
|
|
|
|
timer2 is stopped
|
|
|
|
|
|
2024-03-19 22:36:03 +01:00
|
|
|
|
EMU48.C
|
|
|
|
|
- added io.h in header definition
|
|
|
|
|
- changed function SettingsProc(), added HP/Class mnemonic setting
|
|
|
|
|
- bugfix in function SettingsProc(), new implementation of card
|
|
|
|
|
detection port 1
|
|
|
|
|
- moved initialize/remove of the Critical Section part from main
|
|
|
|
|
program to message handler
|
|
|
|
|
- changed function OnDropFiles(), OnStackCopy(), OnStackPaste(),
|
|
|
|
|
OnObjectLoad() and OnObjectSave(), don't wait for changed state
|
|
|
|
|
after function WaitForSleepState()
|
|
|
|
|
- bugfix in function OnObjectSave(), set info message when emulator
|
|
|
|
|
is busy
|
|
|
|
|
- changed function Disasm(), removed HP/Class mnemonic setting
|
|
|
|
|
- bugfix in function Disasm(), addresses > 0x1869F showed in wrong
|
|
|
|
|
format
|
|
|
|
|
- bugfix in function WinMain(), synchronized thread start
|
|
|
|
|
|
|
|
|
|
EMU48.H
|
|
|
|
|
- changed definition of PORT1_PRESENT, PORT1_WRITE, PORT2_PRESENT
|
|
|
|
|
and PORT2_WRITE
|
|
|
|
|
|
|
|
|
|
EMU48.RC
|
|
|
|
|
- added HP/Class mnemonics in "Settings" dialog
|
|
|
|
|
- added "Interrupts" part in debugger menu
|
|
|
|
|
- added "Enter breakpoint" dialog
|
|
|
|
|
- changed version and copyright
|
|
|
|
|
|
|
|
|
|
ENGINE.C
|
|
|
|
|
- moved debugger part from function WorkerThread() to own function
|
|
|
|
|
- added C=DAT0 A, D0=D0+ 5, PC=(C) code sequence detection for RPL
|
|
|
|
|
breakpoint in debugger
|
|
|
|
|
- added step over interrupt code part handler in debugger section
|
|
|
|
|
- bugfix in function SwitchToState(), when switch from Invalid into
|
|
|
|
|
Run state then don't enter opcode loop on interrupt request or in
|
|
|
|
|
SHUTDN mode
|
|
|
|
|
- changed function WorkerThread(), added memory breakpoint handler
|
|
|
|
|
- bugfix in function WorkerThread(), timer emulation in debugger
|
|
|
|
|
part must check the timer RUN bit
|
|
|
|
|
- bugfix in function WorkerThread(), must set wakeup flag on SHUTDN
|
|
|
|
|
on interrupt request condition
|
|
|
|
|
- changed function WorkerThread(), minor optimization
|
|
|
|
|
|
|
|
|
|
FILES.C
|
|
|
|
|
- added io.h in header definition
|
|
|
|
|
- bugfix in function OpenDocument(), check card detection only if
|
|
|
|
|
enabled and set NINT line to low on a MP interrupt
|
|
|
|
|
- changed function DibNumColors(), optimized by removing case switch
|
|
|
|
|
|
|
|
|
|
IO.H
|
|
|
|
|
- added ANNCTRL and CARDSTAT definitions
|
|
|
|
|
|
|
|
|
|
MOPS.C
|
|
|
|
|
- removed conditional compiling with WSMSET
|
|
|
|
|
- bugfix in function RomSwitch(), mirror smaller ROMs than 2MB
|
2024-03-19 22:37:03 +01:00
|
|
|
|
- bugfix in function Npeek(), wrong content of SRQ2 (0x119) register
|
2024-03-19 22:36:03 +01:00
|
|
|
|
- bugfix in function ReadIO(), wrong implementation of the SMP and
|
2024-03-19 22:37:03 +01:00
|
|
|
|
SWINT bit in the CARDCTL (0x10E) register
|
2024-03-19 22:36:03 +01:00
|
|
|
|
- bugfix in function ReadIO(), wrong implementation of the NINT2 and
|
2024-03-19 22:37:03 +01:00
|
|
|
|
NINT bit in the SRQ2 (0x119) register
|
2024-03-19 22:36:03 +01:00
|
|
|
|
- bugfix in function WriteIO(), wrong implementation of the SMP and
|
2024-03-19 22:37:03 +01:00
|
|
|
|
ECDT bit and removed some wrong stuff in the CARDCTL (0x10E)
|
|
|
|
|
register
|
2024-03-19 22:36:03 +01:00
|
|
|
|
- bugfix in function WriteIO(), the DA19 bit in the LINECOUNT
|
2024-03-19 22:37:03 +01:00
|
|
|
|
(0x129) register is also available in the Clarke hardware
|
2024-03-19 22:36:03 +01:00
|
|
|
|
- bugfix in function WriteIO(), the RUN bit in the TIMER2CTRL
|
2024-03-19 22:37:03 +01:00
|
|
|
|
(0x12F) register has an affection to the display annunciators
|
2024-03-19 22:36:03 +01:00
|
|
|
|
|
|
|
|
|
OPCODES.C
|
|
|
|
|
- added io.h in header definition
|
|
|
|
|
- bugfix in RTI command, low NINT2 or NINT line reenter interrupt
|
|
|
|
|
- bugfix in function o808C() and o808E(), opcodes PC=(A) and PC=(C)
|
|
|
|
|
modify the CRC register
|
|
|
|
|
|
|
|
|
|
OPCODES.H
|
|
|
|
|
- moved HST bit definition to TYPES.H
|
|
|
|
|
|
|
|
|
|
RESOURCE.H
|
|
|
|
|
- added several definitions
|
|
|
|
|
|
|
|
|
|
SETTINGS.C
|
|
|
|
|
- changed function ReadSettings() and WriteSettings(), added section
|
|
|
|
|
[Disassembler] in INI-File
|
|
|
|
|
|
|
|
|
|
TYPES.H
|
|
|
|
|
- added definition of HST bits
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Service Pack 18 for Emu48 Version 1.0
|
|
|
|
|
|
|
|
|
|
EMU48.RC
|
|
|
|
|
- changed version and copyright
|
|
|
|
|
|
|
|
|
|
ENGINE.C
|
|
|
|
|
- bugfix in function WorkerThread(), ignore SHUTDN on interrupt
|
|
|
|
|
request
|
|
|
|
|
|
|
|
|
|
SERIAL.C
|
|
|
|
|
- bugfix in function CommOpen(), must wait for EV_RXCHAR event
|
|
|
|
|
thread directly after opening the serial port
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Service Pack 17 for Emu48 Version 1.0
|
|
|
|
|
|
|
|
|
|
DEBUGGER.C
|
|
|
|
|
- bugfix in function StrToReg() and OnLButtonUp(), wrong string to
|
|
|
|
|
HEX conversation with lowercase letters
|
|
|
|
|
- bugfix in function Debugger(), used wrong background color in
|
|
|
|
|
WM_CTLCOLORSTATIC message handler
|
|
|
|
|
|
|
|
|
|
EMU48.C
|
|
|
|
|
- bugfix in function SettingsProc(), don't overwite Serial-Ir
|
|
|
|
|
setting in HP49 mode
|
|
|
|
|
|
|
|
|
|
EMU48.DSP
|
|
|
|
|
- added i28f160.c sources
|
|
|
|
|
|
|
|
|
|
EMU48.H
|
|
|
|
|
- extern declaration of global variable and functions
|
|
|
|
|
|
|
|
|
|
EMU48.RC
|
|
|
|
|
- changed version and copyright
|
|
|
|
|
|
|
|
|
|
FILES.C
|
|
|
|
|
- added new functions in the ROM patch part
|
|
|
|
|
- changed function PatchRom(), original content of patched address
|
|
|
|
|
is saved now
|
|
|
|
|
- changed function MapRom(), added ROM writing feature
|
|
|
|
|
- changed function UnmapRom(), restore original content before
|
|
|
|
|
closing
|
|
|
|
|
- bugfix in function MapPort2(), shared mode now works, when first
|
|
|
|
|
program instance opened the file with Read/Write access
|
|
|
|
|
- changed function NewDocument() and OpenDocument(), initialize
|
|
|
|
|
flash memory structure
|
|
|
|
|
|
|
|
|
|
I28F160.C
|
2024-03-19 23:35:29 +01:00
|
|
|
|
- new module with I28F160 flash memory implementation
|
2024-03-19 22:36:03 +01:00
|
|
|
|
|
|
|
|
|
I28F160.H
|
|
|
|
|
- header file for flash memory implementation
|
|
|
|
|
|
|
|
|
|
MOPS.C
|
|
|
|
|
- changed function MapROM(), added flash register mode
|
|
|
|
|
- changed function Npeek(), added flash access part
|
|
|
|
|
- changed function Nread(), completed flash access part
|
|
|
|
|
- changed function Nwrite(), completed flash access part
|
|
|
|
|
|
|
|
|
|
OPS.H
|
|
|
|
|
- bugfix in function FASTPTR(), handle NULL pointer pages now
|
|
|
|
|
- bugfix in function Ninc(), Ndec(), Nadd(), Nsub(), Nrsub(), Nnot()
|
|
|
|
|
and Nneg(), wrong results in dec mode with illegal decimal number
|
|
|
|
|
entry
|
|
|
|
|
|
|
|
|
|
SETTINGS.C
|
|
|
|
|
- changed function ReadSettings() and WriteSettings(), added section
|
|
|
|
|
[ROM] in INI-File
|
|
|
|
|
|
|
|
|
|
TIMER.C
|
|
|
|
|
- bugfix in function CalcT2(), workaround to minimize skipping
|
|
|
|
|
timer2 values
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Service Pack 16 for Emu48 Version 1.0
|
|
|
|
|
|
|
|
|
|
DEBUGGER.C
|
|
|
|
|
- added "MMU" and "Miscellaneous" view in debugger dialog
|
|
|
|
|
- added RPL exit breakpoint on A=DAT0 A, D0=D0+ 5, PC=(A) sequence
|
|
|
|
|
- added last instruction viewer in debugger
|
2024-03-19 22:38:33 +01:00
|
|
|
|
- renamed function name ViewStackWnd() to UpdateStackWnd()
|
2024-03-19 22:36:03 +01:00
|
|
|
|
- bugfix in function UpdateRegisterWnd() and OnCtlColorStatic(),
|
|
|
|
|
fixed problems of register update in RUN mode
|
|
|
|
|
- bugfix in function OnKeyF11(), in sleep mode break hasn't worked
|
|
|
|
|
- bugfix in function OnLButtonUp(), register setting wasn't disabled
|
|
|
|
|
in running state
|
|
|
|
|
- changed function NotifyDebugger(), added argument to detect RPL
|
|
|
|
|
breakpoint
|
|
|
|
|
- bugfix in function Debugger(), code disassembler wasn't reset to
|
|
|
|
|
mapped mode at startup and fixed a resource leak
|
|
|
|
|
- bugfix in function EditBreakpoint(), added breakpoint buffer
|
|
|
|
|
overflow check at add breakpoint command
|
|
|
|
|
|
|
|
|
|
DEBUGGER.H
|
|
|
|
|
- extern declaration of global variables
|
|
|
|
|
|
|
|
|
|
DISASM.C
|
|
|
|
|
- bugfix in function disasm_1(), the C=ss, ss=C and CssEX opcodes
|
|
|
|
|
showed always as A=ss, ss=A and AssEX opcodes
|
|
|
|
|
- bugfix in function disasm_8(), the r register in the rSRB.F fs
|
|
|
|
|
opcodes and the opcode lenght was wrong
|
|
|
|
|
|
|
|
|
|
EMU48.C
|
|
|
|
|
- new function CopyItemsToClipboard(), copy selected items from
|
|
|
|
|
listbox to clipboard, extracted from function Disasm()
|
|
|
|
|
- added HP38G64K stuff to function UpdateWindowStatus() and
|
|
|
|
|
SettingsProc()
|
|
|
|
|
- changed function Disasm(), call function CopyItemsToClipboard()
|
|
|
|
|
now
|
|
|
|
|
|
|
|
|
|
EMU48.H
|
|
|
|
|
- extern declaration of global functions
|
|
|
|
|
|
|
|
|
|
EMU48.RC
|
|
|
|
|
- added "MMU" and "Miscellaneous" part in debugger dialog
|
|
|
|
|
- changed copyright date in IDD_ABOUT
|
|
|
|
|
- changed version and copyright
|
|
|
|
|
|
|
|
|
|
ENGINE.C
|
|
|
|
|
- added RPL breakpoint handling
|
|
|
|
|
- added last instruction buffer update handling
|
|
|
|
|
- changed function WorkerThread(), added timer emulation in debugger
|
|
|
|
|
mode
|
|
|
|
|
- bugfix infunction WorkerThread(), in debugger mode Chipset.pc may
|
|
|
|
|
have been changed, so the FASTPTR access must be updated as well
|
|
|
|
|
|
|
|
|
|
EXTERNAL.C
|
|
|
|
|
- some minor changes for the HP38G64K beeper emulation
|
|
|
|
|
|
|
|
|
|
FILES.C
|
|
|
|
|
- added new document type for HP38G64K
|
|
|
|
|
|
|
|
|
|
IO.H
|
|
|
|
|
- added CARDCTL and LCR definitions
|
|
|
|
|
|
|
|
|
|
KEYBOARD.C
|
|
|
|
|
- bugfix in function ScanKeyboard(), update keyboard status only on
|
|
|
|
|
timer running and keyboard interrupt only occur on the rising edge
|
|
|
|
|
of "logic or" of IR[8:0] and not on the rising edge of each line;
|
|
|
|
|
the IRX15 interrupt (ON key) is level sensitive
|
|
|
|
|
|
|
|
|
|
MOPS.C
|
|
|
|
|
- added function MapData() to detect the memory controller handle
|
|
|
|
|
the given address, needed for function Npeek(), Nread() and
|
|
|
|
|
Nwrite()
|
|
|
|
|
- bugfix in function MapROM(), no difference between Clarke and
|
|
|
|
|
Yorke chip in DA19 bit behavior, depends on ROM size
|
|
|
|
|
- bugfix in function Map(), on a HP49 NCE3 may mapped to ROM
|
|
|
|
|
- changed function CpuReset(), reset WSM state of flash memory
|
|
|
|
|
- bugfix in function Npeek(), update card status register in I/O
|
|
|
|
|
register area before reading and simulate an open data bus
|
|
|
|
|
- bugfix in function Nread(), loaded wrong bank switcher FF value
|
|
|
|
|
for a HP49
|
|
|
|
|
- bugfix in function Nwrite(), loaded wrong bank switcher FF value
|
|
|
|
|
when writing on slot2 enabled (GX only)
|
|
|
|
|
- changed function Nread() and Nwrite(), added Flash memory access
|
|
|
|
|
detection part
|
2024-03-19 22:37:03 +01:00
|
|
|
|
- bugfix in function ReadIO(), the CARDSTATUS (0x10F) register
|
2024-03-19 22:36:03 +01:00
|
|
|
|
return zero when card detection is disabled
|
|
|
|
|
- bugfix in function WriteIO(), on a HP49 force new memory mapping
|
2024-03-19 22:37:03 +01:00
|
|
|
|
on changing the LED bit in the LCR (0x11C) register
|
2024-03-19 22:36:03 +01:00
|
|
|
|
|
|
|
|
|
RESOURCE.H
|
|
|
|
|
- added several definitions
|
|
|
|
|
|
|
|
|
|
TYPES.H
|
|
|
|
|
- conditional compiling of cycle counter (32bit EXE/64bit DLL)
|
|
|
|
|
- use position of Port2_NBanks for flash memory WSM state variable
|
|
|
|
|
|
|
|
|
|
|
2024-03-19 22:25:45 +01:00
|
|
|
|
Service Pack 15 for Emu48 Version 1.0
|
|
|
|
|
|
|
|
|
|
DEBUGGER.C
|
|
|
|
|
- added emulation run flag
|
|
|
|
|
- added notify function for emulation stopped
|
|
|
|
|
- added color highlighting on changed registers
|
|
|
|
|
- added implementation of "Step Out" (exit function)
|
|
|
|
|
- bugfix in function ViewMemWnd(), use the Npeek() function for
|
|
|
|
|
reading memory data, so fixed some problems with reading invalid
|
|
|
|
|
data from the I/O register area
|
|
|
|
|
- changed function OnClearAll(), changed argument to dialog handle
|
|
|
|
|
- bugfix in function OnDblClick(), fixed swapped nibbles after enter
|
|
|
|
|
new data
|
|
|
|
|
- changed function OnKeyCodeWnd(), changed first argument to dialog
|
|
|
|
|
handle
|
|
|
|
|
- bugfix in function Debugger(), removed context menu resource leaks
|
|
|
|
|
and a call of GetDlgItem() with invalid arguments
|
|
|
|
|
|
|
|
|
|
DEBUGGER.H
|
|
|
|
|
- extern declaration of global functions
|
|
|
|
|
- moved WM_UPDATE definition to DEBUGGER.C
|
|
|
|
|
|
|
|
|
|
EMU48.C
|
|
|
|
|
- replaced __argc and __argv variables by process variables
|
|
|
|
|
- replaced INI file handling part
|
|
|
|
|
- changed address in GPL license string
|
2024-03-19 22:36:03 +01:00
|
|
|
|
- added HP38 stuff to function UpdateWindowStatus() and
|
2024-03-19 22:25:45 +01:00
|
|
|
|
SettingsProc()
|
|
|
|
|
- changed function SettingsProc(), replaced Port1_Writeable variable
|
|
|
|
|
- bugfix in function OnViewReset(), some registers wasn't reset,
|
|
|
|
|
call reset function now
|
|
|
|
|
- bugfix in function OnDestroy(), moved functions SwitchToState()
|
|
|
|
|
and WriteSettings() to main program, because emulation thread may
|
|
|
|
|
not run and settings aren't read so far when main window close
|
|
|
|
|
- removed function FlushMessages() and all references, because it's
|
|
|
|
|
useless and references made trouble at a WM_QUIT message
|
|
|
|
|
- removed several other resource leaks on error conditions
|
|
|
|
|
- made function MainWndProc() public
|
|
|
|
|
|
|
|
|
|
EMU48.DSP
|
|
|
|
|
- renamed serial.h into io.h in header definition
|
|
|
|
|
- added settings.c sources
|
|
|
|
|
|
|
|
|
|
EMU48.H
|
|
|
|
|
- extern declaration of global variable and functions
|
|
|
|
|
|
|
|
|
|
EMU48.RC
|
|
|
|
|
- changed language definition of dialog IDD_BREAKEDIT
|
|
|
|
|
- added Menuitem Debug "Step Out" in debugger menu
|
|
|
|
|
- changed version and copyright
|
|
|
|
|
|
|
|
|
|
ENGINE.C
|
|
|
|
|
- renamed header Serial.h into io.h
|
|
|
|
|
- renamed wShutdnWake to bShutdnWake in Chipset structure
|
|
|
|
|
- moved bRealSpeed variable and make it public
|
|
|
|
|
- solved bRealSpeed name conflict
|
|
|
|
|
- added DWORD casting from Chipset.cycles variable
|
|
|
|
|
- added part for debugger function "Step Out"
|
|
|
|
|
- changed notify function for update debugger window
|
|
|
|
|
|
|
|
|
|
EXTERNAL.C
|
|
|
|
|
- some minor changes for the HP38 beeper emulation
|
|
|
|
|
|
|
|
|
|
FILES.C
|
|
|
|
|
- added new document type for HP38G
|
|
|
|
|
- replaced __argc and __argv variables by process variables
|
|
|
|
|
- added function CrcRom() to get a fingerprint of the ROM
|
|
|
|
|
- changed function NewDocument(), deleted Port1_Writeable variable,
|
|
|
|
|
isn't used any more
|
|
|
|
|
- bugfix in function OpenDocument(), in restore situation add port2
|
|
|
|
|
only at HP48 emulation
|
|
|
|
|
- changed function OpenDocument(), check fingerprint of ROM
|
|
|
|
|
- changed function SaveDocument(), update fingerprint of ROM
|
|
|
|
|
- changed function SaveBackup(), save window position as well
|
|
|
|
|
- bugfix in function RestoreBackup(), lost port2 of a HP48
|
|
|
|
|
|
|
|
|
|
KEYBOARD.C
|
|
|
|
|
- renamed wShutdnWake to bShutdnWake in Chipset structure
|
|
|
|
|
- added DWORD casting from Chipset.cycles variable
|
|
|
|
|
|
|
|
|
|
KLM.C
|
|
|
|
|
- bugfix in function InitKML(), on a KML script syntax error only
|
|
|
|
|
continue with the Cancel button
|
|
|
|
|
|
|
|
|
|
IO.H
|
|
|
|
|
- old SERIAL.H, added I/O definitions
|
|
|
|
|
|
|
|
|
|
MOPS.C
|
|
|
|
|
- renamed header Serial.h into io.h
|
2024-03-19 22:38:33 +01:00
|
|
|
|
- renamed function CRC() to UpCRC()
|
2024-03-19 22:25:45 +01:00
|
|
|
|
- changed function UckBit(), removed unused variable
|
|
|
|
|
- changed function MapP1(), use cards_status instead of
|
|
|
|
|
Port1_Writeable variable
|
|
|
|
|
- bugfix in function RomSwitch(), lached address line A6 was always
|
|
|
|
|
zero -> no access to upper half of flash memory
|
|
|
|
|
- added function CpuReset() to set cpu registers after reset
|
|
|
|
|
- changed function Npeek(), return data from I/O register area as
|
|
|
|
|
well now (for debugger support)
|
2024-03-19 22:37:03 +01:00
|
|
|
|
- bugfix in function Nread(), reading from the timer2 MSB (0x13F)
|
|
|
|
|
register updates the CRC (0x104-0x107) register
|
2024-03-19 22:25:45 +01:00
|
|
|
|
- bugfix in function ReadIO(), update the USRQ bit in the SRQ1
|
2024-03-19 22:37:03 +01:00
|
|
|
|
(0x118) register after reading the RBR (0x114,0x115) register
|
2024-03-19 22:25:45 +01:00
|
|
|
|
- bugfix in function ReadIO(), update the NINT2 and NINT bits in the
|
2024-03-19 22:37:03 +01:00
|
|
|
|
SRQ2 (0x119) register
|
2024-03-19 22:25:45 +01:00
|
|
|
|
- bugfix in function WriteIO(), update the USRQ bit in the SRQ1
|
2024-03-19 22:37:03 +01:00
|
|
|
|
(0x118) register after writing the IOC (0x110) register or the
|
|
|
|
|
TBR (0x116,0x117) register
|
2024-03-19 22:25:45 +01:00
|
|
|
|
|
|
|
|
|
OPCODES.C
|
|
|
|
|
- added DWORD casting from w.cycles variable
|
|
|
|
|
- checked all undocumented cpu cycles and removed remarks
|
|
|
|
|
- bugfix in function o08(), o09(), o0A(), o0B(), o3X(), o8086n(),
|
|
|
|
|
o8087n(), o808An(), o808Bn() and o8Ed4(), changed number of cpu
|
|
|
|
|
cycles
|
2024-03-19 22:36:03 +01:00
|
|
|
|
|
2024-03-19 22:25:45 +01:00
|
|
|
|
RESOURCE.H
|
|
|
|
|
- added several definitions
|
|
|
|
|
|
|
|
|
|
SERIAL.C
|
|
|
|
|
- renamed header Serial.h into io.h
|
|
|
|
|
- renamed wShutdnWake to bShutdnWake in Chipset structure
|
|
|
|
|
- moved initialize/remove of Critical Section handler from the
|
|
|
|
|
function CommOpen() and CommClose() to main program
|
|
|
|
|
- added function UpdateUSRQ(), implements USRQ bit handling
|
|
|
|
|
- bugfix in function CommTransmit(), added LPB bit emulation in the
|
2024-03-19 22:37:03 +01:00
|
|
|
|
TCS (0x112) register and USRQ bit emulation in the SRQ1 (0x118)
|
|
|
|
|
register
|
2024-03-19 22:25:45 +01:00
|
|
|
|
- bugfix in function CommReceive(), only reject reading if com port
|
|
|
|
|
is closed and not whole operation and added USRQ bit emulation in
|
2024-03-19 22:37:03 +01:00
|
|
|
|
the SRQ1 (0x118) register
|
2024-03-19 22:25:45 +01:00
|
|
|
|
|
|
|
|
|
SERIAL.H
|
|
|
|
|
- renamed to IO.H
|
|
|
|
|
|
|
|
|
|
SETTINGS.C
|
2024-03-19 23:35:29 +01:00
|
|
|
|
- new module to handle the INI file
|
2024-03-19 22:25:45 +01:00
|
|
|
|
|
|
|
|
|
TIMER.C
|
|
|
|
|
- removed timer I/O definitions, replaced by include file IO.H
|
|
|
|
|
- replaced INT define with INTR (conflict with C variable type INT)
|
|
|
|
|
- renamed wShutdnWake variable to bShutdnWake
|
|
|
|
|
- bugfix in function CheckT1() and CheckT2(), added TSRQ bit
|
2024-03-19 22:37:03 +01:00
|
|
|
|
emulation in the SRQ1 (0x118) register
|
2024-03-19 22:25:45 +01:00
|
|
|
|
|
|
|
|
|
TYPES.H
|
|
|
|
|
- changed variable type of wPosX and wPosY, position data is signed
|
|
|
|
|
- use position of wShutdnWake for wRomCrc
|
|
|
|
|
- use position of dwKdnCycles for cycles variable
|
|
|
|
|
- use position of Port1_Writeable for MSB of cycles variable
|
|
|
|
|
- use position of Port2_Writeable for dwKdnCycles variable
|
|
|
|
|
- use old position of the cycles variable for bShutdnWake
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Service Pack 14 for Emu48 Version 1.0
|
|
|
|
|
|
|
|
|
|
COLOR.H
|
|
|
|
|
- new header with color definitions
|
|
|
|
|
|
|
|
|
|
DDESERV.C
|
|
|
|
|
- added different files headers for HP48/49
|
|
|
|
|
|
|
|
|
|
DEBUGGER.C
|
2024-03-19 23:35:29 +01:00
|
|
|
|
- new module for debugger routines
|
2024-03-19 22:25:45 +01:00
|
|
|
|
|
|
|
|
|
DEBUGGER.H
|
|
|
|
|
- header file for debugger part
|
|
|
|
|
|
|
|
|
|
DISASM.C
|
|
|
|
|
- changed function append_r_addr() and append_pc_comment(), relative
|
|
|
|
|
jumps now can viewed with the target address instead of a relative
|
|
|
|
|
offset and target address in remark; implemented a local variable
|
|
|
|
|
- bugfix in function rn_port2(), calculated port2 mask was wrong
|
|
|
|
|
- added HP49 stuff to function rn_port2()
|
|
|
|
|
|
|
|
|
|
EMU48.DSP
|
|
|
|
|
- added debugger.c sources
|
|
|
|
|
|
|
|
|
|
EMU48.C
|
|
|
|
|
- added debugger menu entry
|
|
|
|
|
- added HP49 stuff to the disassembler
|
|
|
|
|
- added HP49 stuff to function SettingsProc()
|
|
|
|
|
- changed function OnViewSettings(), removed port2 open/close
|
|
|
|
|
handling, now done in the document handler
|
|
|
|
|
- deleted unused function OnSysClose()
|
|
|
|
|
- bugfix in function Disasm(), in entry IDC_DISASM_PORT2 the highest
|
|
|
|
|
useable address was always wrong
|
|
|
|
|
|
|
|
|
|
EMU48.RC
|
|
|
|
|
- added Menuitem Tools "Debugger..."
|
|
|
|
|
- changed version and copyright
|
|
|
|
|
|
|
|
|
|
EMU48.H
|
|
|
|
|
- extern declaration of global variable and functions
|
|
|
|
|
|
|
|
|
|
ENGINE.C
|
|
|
|
|
- moved inline function FASTPTR() to OPS.H
|
|
|
|
|
- added debug part in main emulation loop
|
|
|
|
|
|
|
|
|
|
EXTERNAL.C
|
|
|
|
|
- some minor changes for the HP49 beeper emulation
|
|
|
|
|
|
|
|
|
|
FILES.C
|
2024-03-19 22:36:03 +01:00
|
|
|
|
- added new document type for HP49
|
2024-03-19 22:25:45 +01:00
|
|
|
|
- change in function WriteStack(), accept HP49 binary files now
|
|
|
|
|
- the port2 open/close handling is now controlled by the document
|
|
|
|
|
- several changes in port2 handling, the HP49 use an internal 128KB
|
|
|
|
|
RAM card instead of the external RAM card of the HP48
|
|
|
|
|
- changed function UnmapPort2(), added return value for unmap
|
|
|
|
|
success
|
|
|
|
|
- changed function PatchRom(), longer addresses than 5 nibbles can
|
|
|
|
|
be used now
|
|
|
|
|
- changed function OpenDocument(), restore HP49 ROM bank selection
|
|
|
|
|
after document load
|
|
|
|
|
- changed function InitKML(), removed initialization of MMU
|
|
|
|
|
|
|
|
|
|
KEYBOARD.C
|
|
|
|
|
- changed function ScanKeyboard(), added a flag for wake up from
|
|
|
|
|
SHUTDN mode
|
|
|
|
|
|
|
|
|
|
KML.C
|
|
|
|
|
- bugfix in function PressButton(), if button already pressed, do
|
|
|
|
|
nothing -> fixed a draw problem with KML button type 3
|
|
|
|
|
- bugfix in function RefreshButtons(), KML type 3 buttons, must
|
|
|
|
|
complete redraw before refresh them
|
|
|
|
|
|
|
|
|
|
MOPS.C
|
|
|
|
|
- added HP49 MMU parts
|
2024-03-19 22:37:03 +01:00
|
|
|
|
- bugfix in function ReadIO(), update the UCK bit in the BAU (0x10D)
|
|
|
|
|
register
|
2024-03-19 22:25:45 +01:00
|
|
|
|
|
|
|
|
|
OPS.H
|
|
|
|
|
- moved inline function FASTPTR() from ENGINE.C to header file
|
|
|
|
|
|
|
|
|
|
RESOURCE.H
|
|
|
|
|
- added several definitions
|
|
|
|
|
|
|
|
|
|
RPL.C
|
|
|
|
|
- added HP49 memory pointers
|
|
|
|
|
- added HP49 flash pointer object (=DOFASHP)
|
|
|
|
|
- added HP49 precision integer object (=DOINT)
|
|
|
|
|
- added HP49 precision real object (=DOLNGREAL)
|
|
|
|
|
- added HP49 precision complex object (=DOLNGCMP)
|
|
|
|
|
- added HP49 symbolic matrix object (=DOMATRIX)
|
|
|
|
|
- added HP49 aplet object (=DOAPLET)
|
|
|
|
|
- added HP49 mini font object (=DOMINIFONT)
|
|
|
|
|
|
|
|
|
|
SERIAL.C
|
|
|
|
|
- changed function SerialThread(), added a flag for wake up from
|
|
|
|
|
SHUTDN mode
|
|
|
|
|
|
|
|
|
|
TIMER.C
|
|
|
|
|
- changed functions CheckT1() and CheckT2(), added a flag for wake
|
|
|
|
|
up from SHUTDN mode
|
|
|
|
|
|
|
|
|
|
TYPES.H
|
|
|
|
|
- use position of the wUnused1 variable for SHUTDN wake up flag
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Service Pack 13 for Emu48 Version 1.0
|
|
|
|
|
|
|
|
|
|
DISASM.C
|
|
|
|
|
- bugfix in function disasm_8(), the HS=0 n opcode was showed wrong
|
|
|
|
|
|
|
|
|
|
EMU48.DSP
|
|
|
|
|
- added fetch.c and opcodes.c sources
|
|
|
|
|
|
|
|
|
|
EMU48.C
|
|
|
|
|
- bugfix in function Disasm() and About(), handled messages must
|
|
|
|
|
return TRUE
|
|
|
|
|
|
|
|
|
|
EMU48.H
|
|
|
|
|
- added function prototypes
|
|
|
|
|
|
|
|
|
|
ENGINE.C
|
|
|
|
|
- moved several definitions to OPCODE.H
|
|
|
|
|
- made function AdjKeySpeed() public
|
|
|
|
|
- replaced opcode handling include files by a function call, decoder
|
|
|
|
|
now works with tables instead of case switching
|
2024-03-19 23:35:29 +01:00
|
|
|
|
- deleted unused code parts in module
|
2024-03-19 22:25:45 +01:00
|
|
|
|
|
|
|
|
|
FETCH.C
|
2024-03-19 23:35:29 +01:00
|
|
|
|
- new module with opcode dispatcher
|
2024-03-19 22:25:45 +01:00
|
|
|
|
|
|
|
|
|
FETCH.H
|
|
|
|
|
- file deleted, replaced by FETCH.C
|
|
|
|
|
|
|
|
|
|
FILES.C
|
|
|
|
|
- bugfix in function PatchRom(), no correct handling of remarks,
|
|
|
|
|
interpreter failed on lower case hex digits in arguments
|
|
|
|
|
|
|
|
|
|
OPCODES.C
|
2024-03-19 23:35:29 +01:00
|
|
|
|
- new module with opcode implementation
|
2024-03-19 22:25:45 +01:00
|
|
|
|
|
|
|
|
|
OPCODES.H
|
|
|
|
|
- file content changed, replaced by OPCODES.C
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Service Pack 12 for Emu48 Version 1.0
|
|
|
|
|
|
|
|
|
|
DISPLAY.C
|
|
|
|
|
- minor change in function UpdateMainDisplay()
|
|
|
|
|
- deleted remarked global variables and unused code parts in
|
|
|
|
|
function WriteToMainDisplay()
|
|
|
|
|
|
|
|
|
|
EMU48.C
|
|
|
|
|
- added auto event object for controlling the CPU thread
|
|
|
|
|
|
|
|
|
|
EMU48.H
|
|
|
|
|
- removed extern declaration of variable
|
|
|
|
|
- extern declaration of global variable and functions
|
|
|
|
|
|
|
|
|
|
ENGINE.C
|
|
|
|
|
- new function CheckDisp(), synchronize display update now with the
|
|
|
|
|
line update counter
|
|
|
|
|
- replaced all ResumeThread() with SetEvent() calls
|
|
|
|
|
- replaced all SuspendThread() with WaitForSingleObject() calls
|
|
|
|
|
|
|
|
|
|
KEYBOARD.C
|
|
|
|
|
- replaced all ResumeThread() with SetEvent() calls
|
|
|
|
|
- deleted unused code parts in function ScanKeyboard()
|
|
|
|
|
|
|
|
|
|
MOPS.C
|
|
|
|
|
- flag for updating display area is now global
|
|
|
|
|
- new function GetLineCounter() for getting the actual display
|
|
|
|
|
refresh line
|
|
|
|
|
- changed function WriteIO(), display isn't updated here any more
|
|
|
|
|
- use serial definitions from "serial.h" now
|
|
|
|
|
- deleted remarked functions Nread2(), Nwrite2(), Nread5() and
|
|
|
|
|
Nwrite5()
|
|
|
|
|
|
|
|
|
|
SERIAL.C
|
|
|
|
|
- replaced all ResumeThread() with SetEvent() calls
|
|
|
|
|
|
|
|
|
|
TIMER.C
|
|
|
|
|
- bugfix in function SetT1(), loading same timer value doesn't
|
|
|
|
|
restart timer period
|
|
|
|
|
- replaced all ResumeThread() with SetEvent() calls
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Service Pack 11 for Emu48 Version 1.0
|
|
|
|
|
|
|
|
|
|
EMU48.C
|
|
|
|
|
- removed cards status definitions
|
|
|
|
|
- bugfix in function OnFileExit(), continuing the emulation failed
|
|
|
|
|
after pressing the "Cancel" button in save dialogbox
|
|
|
|
|
- removed function OnSysClose(), no difference to function
|
|
|
|
|
OnFileExit()
|
|
|
|
|
- changed message implementation WM_SYSCOMMAND/SC_CLOSE to function
|
|
|
|
|
OnFileExit()
|
|
|
|
|
|
|
|
|
|
EMU48.DSP
|
|
|
|
|
- added preprocessor definition "STRICT" to project
|
|
|
|
|
|
|
|
|
|
EMU48.H
|
|
|
|
|
- moved cards status definitions from EMU48.C to header file
|
|
|
|
|
- extern declaration of global function
|
|
|
|
|
|
|
|
|
|
EMU48.RC
|
|
|
|
|
- changed version and copyright
|
|
|
|
|
|
|
|
|
|
ENGINE.C
|
|
|
|
|
- bugfix in function WorkerThread(), after changing the port2 card
|
|
|
|
|
status the memory mapping must be updated
|
|
|
|
|
- update HP48 time now in function WorkerThread() and not in
|
|
|
|
|
function StartTimers()
|
|
|
|
|
|
|
|
|
|
FILES.C
|
|
|
|
|
- changed function MapPort2(), dwPort2Mask now shows the valid
|
|
|
|
|
address lines of the bank switcher FF
|
|
|
|
|
|
|
|
|
|
MOPS.C
|
|
|
|
|
- bugfix in function MapP1() and MapP2(), clear mapping area if port
|
|
|
|
|
is configured but not plugged
|
|
|
|
|
- bugfix in function MapP2(), odd bank switch values loaded the
|
|
|
|
|
wrong page of port2 and bank switcher must be disabled on S(X)
|
|
|
|
|
versions
|
|
|
|
|
- changed function Nread(), simulate an open data bus now (fix
|
|
|
|
|
value for even and odd address)
|
|
|
|
|
- bugfix in function Nread(), don't change bank switcher value if
|
|
|
|
|
RAM or CE2 is on the same address, because these modules have
|
|
|
|
|
higher access priority
|
|
|
|
|
- bugfix in function Nwrite(), bank switching now works with the
|
|
|
|
|
'datx=r fsd' command
|
|
|
|
|
|
|
|
|
|
TIMER.C
|
|
|
|
|
- renamed function SetAccesstime() to SetHP48Time() and made
|
|
|
|
|
function public
|
|
|
|
|
- removed update of HP48 time in function StartTimers()
|
|
|
|
|
|
|
|
|
|
|
2024-03-19 22:24:30 +01:00
|
|
|
|
Service Pack 10 for Emu48 Version 1.0
|
|
|
|
|
|
|
|
|
|
DISPLAY.C
|
|
|
|
|
- use only one pattern field for all display resolutions
|
|
|
|
|
- added new display contrast scheme
|
|
|
|
|
- bugfix in function WriteToMainDisplay(), calculated source memory
|
|
|
|
|
address was illegal memory pointer
|
|
|
|
|
|
|
|
|
|
EMU48.C
|
|
|
|
|
- bugfix in functions OnFileExit() and OnSysClose(), stop emulation
|
|
|
|
|
thread before saving emulation data
|
|
|
|
|
- changed function Disasm(), changed list box from single to multi
|
2024-03-19 22:36:03 +01:00
|
|
|
|
selectable items, added button to copy selected items to
|
2024-03-19 22:24:30 +01:00
|
|
|
|
clipboard
|
|
|
|
|
- moved function DragAcceptFiles() to WM_CREATE handler
|
|
|
|
|
- added function DragAcceptFiles() to WM_DESTROY handler
|
|
|
|
|
- allow second command line parameter as port2 filename
|
2024-03-19 22:25:45 +01:00
|
|
|
|
- added Critical Section initialization
|
2024-03-19 22:24:30 +01:00
|
|
|
|
|
|
|
|
|
EMU48.H
|
|
|
|
|
- removed extern declaration of global function
|
|
|
|
|
- extern declaration of global variable and functions
|
|
|
|
|
|
|
|
|
|
EMU48.RC
|
|
|
|
|
- added button in dialog IDD_DISASM
|
|
|
|
|
- reinsert button IDC_UPDATE in dialog IDD_CHOOSEKML
|
|
|
|
|
- changed version and copyright
|
|
|
|
|
|
|
|
|
|
ENGINE.C
|
|
|
|
|
- functions CheckSerial() and AdjustSpeed() are inline coded now
|
|
|
|
|
- new function UpdateKdnBit() for updating the KDN bit by the 1ms
|
|
|
|
|
keyboard interrupt handler
|
|
|
|
|
|
|
|
|
|
FILES.C
|
|
|
|
|
- added new function CrcPort2() to get a fingerprint of port2
|
|
|
|
|
- changed function OpenDocument(), check fingerprint of port2
|
|
|
|
|
- changed function SaveDocument(), update fingerprint of port2
|
|
|
|
|
|
|
|
|
|
KEYBOARD.C
|
|
|
|
|
- changed function Keyboard_GetIR() to static
|
|
|
|
|
- bugfix in function ScanKeyboard(), added fixes for the KDN bit
|
|
|
|
|
implementation and update keyboard interrupt pending flag when
|
|
|
|
|
1ms keyboard handler is disabled
|
|
|
|
|
|
|
|
|
|
KML.C
|
|
|
|
|
- bugfix in function ParseLine(), caused memory leaks when an error
|
|
|
|
|
occured
|
|
|
|
|
- bugfix in function ParseLines(), fixed a windows program abort on
|
|
|
|
|
some KML script or line include errors
|
|
|
|
|
- bugfix in function ParseBlock(), abort parsing on KML script
|
|
|
|
|
errors
|
|
|
|
|
- bugfix in function ParseBlocks(), fixed a windows program abort on
|
|
|
|
|
block include errors
|
|
|
|
|
- bugfix in function FreeLines(), caused memory leaks when different
|
|
|
|
|
argument types are used in a line
|
|
|
|
|
|
|
|
|
|
MOPS.C
|
|
|
|
|
- added new function IOBit()
|
|
|
|
|
- bugfix in function ReadIO(), update the KDN bit in the SRQ2
|
2024-03-19 22:37:03 +01:00
|
|
|
|
(0x119) register before reading
|
2024-03-19 22:24:30 +01:00
|
|
|
|
|
|
|
|
|
OPCODES.H
|
|
|
|
|
- bugfix in A=IN and C=IN command, update KDN bit in the SRQ
|
|
|
|
|
register
|
|
|
|
|
- bugfix in all r=r+CON fs,n and r=r-CON fs,n opcodes, they always
|
|
|
|
|
work in HEX mode
|
|
|
|
|
- changes in INTON, INTOFF and RTI for KDN bit implementation
|
|
|
|
|
- changed RTI command, execute pending key interrupt only if enabled
|
|
|
|
|
- changed RSI command, set key interrupt pending flag also when 1ms
|
|
|
|
|
keyboard handler is disabled
|
|
|
|
|
- bugfix in INTON command, execute interrupt if key interrupt is
|
|
|
|
|
pending
|
|
|
|
|
|
|
|
|
|
OPS.H
|
|
|
|
|
- added new inline functions Ninc16() and Ndec16()
|
|
|
|
|
|
|
|
|
|
RESOURCE.H
|
|
|
|
|
- added/changed definitions
|
|
|
|
|
- removed ID_HELP_REGISTER
|
|
|
|
|
|
|
|
|
|
TYPES.H
|
|
|
|
|
- use position of the uUnused1 variable for fingerprint of port2
|
|
|
|
|
- use position of the Port2_Size variable for cpu cycles at start of
|
|
|
|
|
1ms key interrupt handler
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Service Pack 9 for Emu48 Version 1.0
|
|
|
|
|
|
|
|
|
|
DISASM.C
|
|
|
|
|
- changed output of HP Mnemonic P=n
|
|
|
|
|
|
|
|
|
|
DISPLAY.C
|
|
|
|
|
- bugfix in function UpdateMainDisplay(), with off display and Zoom
|
|
|
|
|
> 1 only a part of the display was cleared
|
|
|
|
|
- changed function UpdateMenuDisplay(), use a common pointer offset
|
|
|
|
|
calculation and display output part now
|
|
|
|
|
|
|
|
|
|
EMU48.C
|
|
|
|
|
- changed function OnViewCopy(), changed screen clipboard format
|
|
|
|
|
from CF_BITMAP to CF_DIB
|
|
|
|
|
- bugfix in function OnViewReset(), must unconfig MMU on reset too
|
|
|
|
|
- changed function OnAbout(), don't stop emulation while viewing
|
|
|
|
|
About box
|
|
|
|
|
- moved initialize/remove of the Critical Section part from message
|
|
|
|
|
handler to main program
|
|
|
|
|
|
|
|
|
|
EMU48.H
|
|
|
|
|
- removed extern declaration of global variables and functions
|
|
|
|
|
|
|
|
|
|
EMU48.RC
|
|
|
|
|
- changed design of IDD_ABOUT
|
|
|
|
|
- changed version and copyright
|
|
|
|
|
|
|
|
|
|
ENGINE.C
|
|
|
|
|
- bugfix in function FASTPTR(), code execution is possible in IO
|
|
|
|
|
register area as well
|
|
|
|
|
|
|
|
|
|
FETCH.H
|
|
|
|
|
- removed jump to extension opcode 81B0
|
|
|
|
|
|
|
|
|
|
FILES.C
|
|
|
|
|
- removed global variable
|
|
|
|
|
|
|
|
|
|
MOPS.C
|
|
|
|
|
- bugfix in function MapP0(), MapP1(), MapP2(), MapBS(), mapping
|
|
|
|
|
area may have holes
|
|
|
|
|
- bugfix in function MapBS(), no read from ROM at mapped bank
|
|
|
|
|
switch control area
|
|
|
|
|
- bugfix in function MapP2(), if G(X) ROM select port2 only if
|
|
|
|
|
DA19=0 and BEN=1, now the saved bank switch control information is
|
|
|
|
|
used
|
|
|
|
|
- bugfix in function MapROM(), if G(X) ROM and DA19=0 (ROM disabled)
|
|
|
|
|
then mirror lower ROM at #80000 (AR18=0)
|
|
|
|
|
- bugfix in function Nread(), bank switching now works with every
|
|
|
|
|
'r=datx fsd' command in the complete mapped bank switch control
|
|
|
|
|
area, an unconfigured bank switch area is now disabled and the
|
2024-03-19 22:25:45 +01:00
|
|
|
|
GX bank switch information (content of Flipflop) is saved now
|
2024-03-19 22:24:30 +01:00
|
|
|
|
- bugfix in function Nwrite(), at some conditions no update of the
|
|
|
|
|
display area and IO area couldn't be unconfigured
|
|
|
|
|
- removed functions Nread2(), Nwrite2(), Nread5() and Nwrite5()
|
|
|
|
|
- bugfix in function ReadIO(), several minor fixes in the LINECOUNT
|
2024-03-19 22:37:03 +01:00
|
|
|
|
(0x128,0x129) register emulation
|
2024-03-19 22:24:30 +01:00
|
|
|
|
- bugfix in function ReadIO(), the TIMER1CTRL and TIMER2CTRL
|
2024-03-19 22:37:03 +01:00
|
|
|
|
(0x12E,0x12F) register must be updated before reading
|
2024-03-19 22:24:30 +01:00
|
|
|
|
- bugfix in function WriteIO(), don't clear the XTRA bit in the
|
2024-03-19 22:37:03 +01:00
|
|
|
|
TIMER1CTRL (0x12E) register while setting
|
2024-03-19 22:24:30 +01:00
|
|
|
|
- bugfix in function WriteIO(), after setting new TIMER1CTRL and
|
2024-03-19 22:37:03 +01:00
|
|
|
|
TIMER2CTRL (0x12E,0x12F) register values the control bit
|
2024-03-19 22:24:30 +01:00
|
|
|
|
condition must be checked
|
|
|
|
|
- bugfix in function WriteIO(), handle start/stop of the LINECOUNT
|
|
|
|
|
register when the DON bit in the DISPIO (0x100) register has
|
|
|
|
|
changed
|
2024-03-19 22:36:03 +01:00
|
|
|
|
- bugfix in function WriteIO(), force new ROM mapping if DA19 in
|
2024-03-19 22:24:30 +01:00
|
|
|
|
the MSB LINECOUNT (0x129) register has changed on a G(X) ROM
|
|
|
|
|
|
|
|
|
|
OPCODES.H
|
|
|
|
|
- Nwrite2() replaced by Nwrite()
|
|
|
|
|
- Nwrite5() replaced by Nwrite()
|
|
|
|
|
- Nread2() replaced by Nread() for the BS 'r=datx fsd' bugfix
|
|
|
|
|
- Nread5() replaced by Nread() for the BS 'r=datx fsd' bugfix
|
|
|
|
|
- bugfix in RTI command, generate interrupt if ON key is pressed
|
|
|
|
|
- bugfix in RSI command, don't set key interrupt pending flag if
|
|
|
|
|
INTOFF command is active
|
|
|
|
|
- removed extension opcode 81B0
|
|
|
|
|
|
|
|
|
|
TIMER.C
|
|
|
|
|
- removed assertions in function CheckT1() and CheckT2() that the
|
|
|
|
|
timers must run
|
|
|
|
|
- moved initialize/remove of Critical Section handler from the
|
|
|
|
|
function StartTimers() and StopTimers() to main program for bugfix
|
|
|
|
|
the problems with the Critical Section area of the function
|
|
|
|
|
ReadT1() and ReadT2() when the timers are stopped
|
|
|
|
|
- bugfix in function ReadT2(), timer2 was always running
|
|
|
|
|
|
|
|
|
|
TYPES.H
|
|
|
|
|
- use Port2_Bank variable to save state of GX port2 Flip-Flop
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Service Pack 8 for Emu48 Version 1.0
|
|
|
|
|
|
|
|
|
|
DISASM.C
|
|
|
|
|
- changed function read_nibble() to disassemble modules
|
|
|
|
|
- added new mapping functions for function read_nibble()
|
|
|
|
|
- bugfix in function append_imm_nibble(), HP Mnemonic hex number
|
|
|
|
|
was showed as decimal number
|
|
|
|
|
|
|
|
|
|
EMU48.C
|
|
|
|
|
- changed variable types of function WinMain()
|
|
|
|
|
- added "drag and drop" implementation for HP objects
|
|
|
|
|
- added some features to function Disasm()
|
|
|
|
|
- removed all parts handled with the global variables bAccurateTimer
|
|
|
|
|
and uT1Period
|
|
|
|
|
- bugfix in function Disasm(), button "Next Address" caused a
|
|
|
|
|
windows program abort if the given address was outside of the
|
|
|
|
|
cpu address area
|
|
|
|
|
- bugfix in function UpdateWindowStatus(), Menuitem Tools
|
|
|
|
|
"Disassembler..." must be disabled when document file is closed
|
|
|
|
|
- bugfix in function OnStackPaste(), fixed problem when HP is off
|
|
|
|
|
- bugfix in function OnObjectLoad(), solve problem when calculator
|
|
|
|
|
is off and bugfixed method to switch emulator into sleep state
|
|
|
|
|
- bugfix in function OnObjectSave(), bugfixed method to switch
|
|
|
|
|
emulator into sleep state
|
|
|
|
|
|
|
|
|
|
EMU48.DSP
|
|
|
|
|
- added library shell32.lib
|
|
|
|
|
|
|
|
|
|
EMU48.H
|
|
|
|
|
- bugfix of variable hApp, used wrong type
|
|
|
|
|
- extern declaration of global variables
|
|
|
|
|
- removed extern declaration of global variables
|
|
|
|
|
- added some disassembler defines
|
|
|
|
|
|
|
|
|
|
EMU48.RC
|
|
|
|
|
- added my name to dialog IDD_ABOUT
|
|
|
|
|
- added some radio buttons to dialog IDD_DISASM
|
|
|
|
|
- removed Timers part from dialog IDD_SETTINGS
|
|
|
|
|
- changed version and copyright
|
|
|
|
|
|
|
|
|
|
ENGINE.C
|
|
|
|
|
- added global variable
|
|
|
|
|
- removed global variable
|
|
|
|
|
- bugfix in function AdjKeySpeed(), slow down whole emulation now,
|
|
|
|
|
when a key is pressed
|
|
|
|
|
|
|
|
|
|
KEYBOARD.C
|
|
|
|
|
- changed key event signal in function KeyboardEvent()
|
|
|
|
|
|
|
|
|
|
MOPS.C
|
|
|
|
|
- bugfix in function Uncnfg(), I/O mapped address area begin and end
|
|
|
|
|
on a 64 nibble boundary, Chipset.IOBase must be saved for the C=ID
|
|
|
|
|
command
|
|
|
|
|
- bugfix in function C_Eq_Id(), don't shift Chipset.IOBase for ID
|
|
|
|
|
- changed function Nread(), Nwrite(), Nread2(), Nwrite2(), Nread5()
|
|
|
|
|
and Nwrite5(), test Chipset.IOCfig as well for mapping
|
|
|
|
|
|
|
|
|
|
OPCODES.H
|
|
|
|
|
- removed InfoMessage in BUSCB, BUSCC and BUSCD opcode, emulate as
|
|
|
|
|
NOP
|
|
|
|
|
- bugfix in RTI command, don't return from interrupt at timer1/2
|
|
|
|
|
interrupt condition
|
|
|
|
|
- bugfix in SHUTDN command, don't shut down at timer1/2 wake up
|
|
|
|
|
condition
|
|
|
|
|
- bugfix in RSI command, detection of interrupt is in service was
|
|
|
|
|
wrong
|
|
|
|
|
|
|
|
|
|
PCH.H
|
|
|
|
|
- added include shellapi.h
|
|
|
|
|
|
|
|
|
|
RESOURCE.H
|
|
|
|
|
- added several definitions
|
|
|
|
|
- removed IDC_BROWSEDIR, IDC_REFRESH, IDC_USEMMTIMER, IDC_T1PERIOD,
|
|
|
|
|
IDC_T1DEFAULT
|
|
|
|
|
|
|
|
|
|
TIMER.C
|
|
|
|
|
- removed global variables bAccurateTimer and uT1Period, replaced by
|
|
|
|
|
a static variable and a constant
|
|
|
|
|
- changed function CheckT1() and function CheckT2(), use function
|
|
|
|
|
parameter for the timer value now
|
|
|
|
|
- changed function ReadT1() and function ReadT2(), update timer
|
|
|
|
|
control bits after reading
|
|
|
|
|
- bugfix in function RescheduleT2(), execute timer2 event when MSB
|
|
|
|
|
of timer changed to update timer2 control register
|
|
|
|
|
- bugfix in function TimeProc(), waiting for timer2 overrun prevents
|
|
|
|
|
access to the timer2 value from the cpu emulation thread and reset
|
|
|
|
|
of variable uT2TimerId was outside synchronized area
|
|
|
|
|
- bugfix in function CheckT1() and function CheckT2(), fixed SRQ bit
|
|
|
|
|
handling
|
|
|
|
|
- bugfix in function SetT1() and function SetT2(), update timer
|
|
|
|
|
control bits and check for interrupts after setting
|
|
|
|
|
- bugfix in function StopTimers() and function SetT2(), killing
|
|
|
|
|
timer1 or timer2 in a Critical Section part may cause a dead lock
|
|
|
|
|
with the timer callback function (function timeKillEvent() waits
|
|
|
|
|
for the finish of the corresponding callback function, but the
|
|
|
|
|
callback function is locked by the Critical Section handler)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Service Pack 7 for Emu48 Version 1.0
|
|
|
|
|
|
|
|
|
|
DISASM.C
|
2024-03-19 23:35:29 +01:00
|
|
|
|
- new module with disassembler
|
2024-03-19 22:24:30 +01:00
|
|
|
|
|
|
|
|
|
DISPLAY.C
|
|
|
|
|
- bugfixes in function UpdateDisplayPointers(), next line offset was
|
|
|
|
|
sometimes wrong and the addresses of the main display area were
|
|
|
|
|
wrong when next line offset was negative
|
|
|
|
|
- new implementation of function WriteToMainDisplay(), fixed several
|
|
|
|
|
bugs (no output when next line offset was negative, sometimes
|
|
|
|
|
problems with left margin values > 4 and garbage on display)
|
|
|
|
|
- bugfix in function WriteToMenuDisplay(), menu wasn't updated
|
|
|
|
|
when next line offset was negative
|
|
|
|
|
|
|
|
|
|
EMU48.C
|
|
|
|
|
- added global variable
|
2024-03-19 22:25:45 +01:00
|
|
|
|
- added semaphore handling for key scan
|
2024-03-19 22:24:30 +01:00
|
|
|
|
- added disassembler dialog box and menu entry
|
|
|
|
|
- bugfix in function OnViewCopy(), the clipboard wasn't closed when
|
|
|
|
|
EmptyClipboard() failed
|
|
|
|
|
- bugfix in function OnKeyDown(), suppress autorepeat feature of
|
|
|
|
|
keyboard
|
|
|
|
|
|
|
|
|
|
EMU48.DSP
|
|
|
|
|
- added disasm.c source
|
|
|
|
|
|
|
|
|
|
EMU48.H
|
|
|
|
|
- extern declaration of global variables
|
|
|
|
|
- added function prototypes
|
|
|
|
|
|
|
|
|
|
EMU48.RC
|
|
|
|
|
- added Menuitem Tools "Disassembler..."
|
|
|
|
|
- changed version and copyright
|
|
|
|
|
|
|
|
|
|
ENGINE.C
|
|
|
|
|
- added global variable
|
|
|
|
|
- bugfix in function AdjKeySpeed(), exit delay loop when a key
|
|
|
|
|
event has occured and use Chipset.Keyboard_Row[] instead of
|
|
|
|
|
Chipset.in to detect a pressed key
|
|
|
|
|
|
|
|
|
|
FILES.C
|
|
|
|
|
- function LoadBitmapFile() save old hWindowDC palette now
|
|
|
|
|
- bugfix in function SaveDocumentAs(), previous opened file wasn't
|
|
|
|
|
closed
|
|
|
|
|
|
|
|
|
|
KEYBOARD.C
|
|
|
|
|
- bugfix in function ScanKeyboard(), code part must be synchronized
|
|
|
|
|
and an interrupt was only generated when all input lines has been
|
|
|
|
|
low (no keys pressed)
|
|
|
|
|
- added parameter to function ScanKeyboard(), parameter indicates if
|
|
|
|
|
the Chipset.in interrupt register should be reset
|
|
|
|
|
- added key event signal in function KeyboardEvent()
|
|
|
|
|
- workaround in function KeyboardEvent(), hold key state for a
|
|
|
|
|
definite time
|
|
|
|
|
|
|
|
|
|
KML.C
|
|
|
|
|
- bugfix in function ParseLines() and ParseBlocks(), allocated
|
|
|
|
|
memory for string parameter of include token wasn't freed
|
|
|
|
|
- bugfix in function KillKML(), palette resource couldn't freed,
|
|
|
|
|
when hWindowDC was open
|
|
|
|
|
|
|
|
|
|
MOPS.C
|
|
|
|
|
- bugfix in function WriteIO(), the Chipset.start1 variable only
|
2024-03-19 22:37:03 +01:00
|
|
|
|
was updated when five nibbles at the DISPADDR (0x120) register
|
2024-03-19 22:24:30 +01:00
|
|
|
|
has been written
|
|
|
|
|
- bugfix in function WriteIO(), the Chipset.loffset variable only
|
2024-03-19 22:37:03 +01:00
|
|
|
|
was updated when three nibbles at the LINEOFFS (0x125) register
|
2024-03-19 22:24:30 +01:00
|
|
|
|
has been written
|
|
|
|
|
- bugfix in function WriteIO(), the Chipset.lcounter variable only
|
2024-03-19 22:37:03 +01:00
|
|
|
|
was updated when the MSB of the LINECOUNT (0x129) register has
|
2024-03-19 22:24:30 +01:00
|
|
|
|
been written
|
|
|
|
|
- bugfix in function WriteIO(), the Chipset.start2 variable only
|
2024-03-19 22:37:03 +01:00
|
|
|
|
was updated when five nibbles at the MENUADDR (0x130) register
|
2024-03-19 22:24:30 +01:00
|
|
|
|
has been written
|
2024-03-19 22:37:03 +01:00
|
|
|
|
- bugfix in function ReadIO(), the LINECOUNT (0x128-0x129) register
|
2024-03-19 22:24:30 +01:00
|
|
|
|
is a down counter
|
|
|
|
|
|
|
|
|
|
OPCODES.H
|
|
|
|
|
- changed RSI command for thread synchronize
|
|
|
|
|
|
|
|
|
|
RESOURCE.H
|
|
|
|
|
- added several definitions
|
|
|
|
|
|
|
|
|
|
TIMER.C
|
|
|
|
|
- bugfix in function SetAccesstime(), sync time values must always
|
|
|
|
|
save in port0 and not at the mapped address
|
|
|
|
|
- bugfix in function RescheduleT2(), used wrong event time when
|
|
|
|
|
reference point for timer2 value wasn't saved
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Service Pack 6 for Emu48 Version 1.0
|
|
|
|
|
|
|
|
|
|
DDESERV.C
|
|
|
|
|
- bugfix in XTYP_POKE part, fixed problem when HP is off
|
|
|
|
|
|
|
|
|
|
DISPLAY.C
|
|
|
|
|
- added X4 display size parts
|
|
|
|
|
|
|
|
|
|
EMU48.C
|
|
|
|
|
- changed function OnViewCopy() for X4 display size
|
|
|
|
|
- init lFreq variable for high performance counter here now
|
|
|
|
|
|
|
|
|
|
EMU48.H
|
|
|
|
|
- changed type and name of bLcdDoubled to nLcdDoubled
|
|
|
|
|
- extern declaration of global variables
|
|
|
|
|
|
|
|
|
|
EMU48.RC
|
|
|
|
|
- changed version and copyright
|
|
|
|
|
|
|
|
|
|
EXTERNAL.C
|
|
|
|
|
- changed high limit of frequency, use SX specification
|
|
|
|
|
- added high limit of beep duration, use SX specification
|
|
|
|
|
- estimate cpu cycles for beep time
|
|
|
|
|
- adjust some cpu flags and registers modified by the original code
|
|
|
|
|
|
|
|
|
|
KML.C
|
|
|
|
|
- changed TOK_ZOOM implementation in function InitLcd()
|
|
|
|
|
|
|
|
|
|
MOPS.C
|
|
|
|
|
- changed implementation of registers 0x128-0x12D in function
|
|
|
|
|
ReadIO()
|
|
|
|
|
|
|
|
|
|
OPCODES.H
|
|
|
|
|
- update field select table in "EXTENSION opcode o81B1"
|
|
|
|
|
|
|
|
|
|
TIMER.C
|
2024-03-19 23:35:29 +01:00
|
|
|
|
- moved static lFreq variable to module EMU48.C
|
2024-03-19 22:24:30 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Service Pack 5a for Emu48 Version 1.0
|
|
|
|
|
|
|
|
|
|
EMU48.C
|
|
|
|
|
- bugfix in OnPaint(), must redraw annunciators
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Service Pack 5 for Emu48 Version 1.0
|
|
|
|
|
|
|
|
|
|
DDESERV.C
|
|
|
|
|
- return DDE error if emulator state couldn't change to sleep state
|
|
|
|
|
|
|
|
|
|
EMU48.C
|
|
|
|
|
- added Copy/Paste Clipboard data from/to stack (strings only)
|
|
|
|
|
|
|
|
|
|
EMU48.H
|
|
|
|
|
- extern declaration of global variables
|
|
|
|
|
- added function prototypes
|
|
|
|
|
|
|
|
|
|
EMU48.RC
|
|
|
|
|
- added Menuitem Edit "Copy String" and "Paste String"
|
|
|
|
|
- fixed multiple use of accelerator keys
|
|
|
|
|
- changed version and copyright
|
|
|
|
|
|
|
|
|
|
ENGINE.C
|
|
|
|
|
- added function WaitForSleepState(), wait for the SHUTDN command
|
|
|
|
|
-> stack isn't in use (when the clock is displayed, a time string
|
|
|
|
|
was sometimes on stack instead of the loaded item), then switch to
|
|
|
|
|
state 3 (Sleep state)
|
|
|
|
|
- added function AdjKeySpeed(), slow down key repetition
|
|
|
|
|
|
|
|
|
|
FILES.C
|
|
|
|
|
- save mapping size of port2 in global variable
|
|
|
|
|
- optimized calculation of bank switch mask in MapPort2()
|
|
|
|
|
|
|
|
|
|
MOPS.C
|
|
|
|
|
- bugfix in MapP0(), data offset was wrong
|
|
|
|
|
- bugfix in MapP1(), data offset was wrong
|
2024-03-19 23:35:29 +01:00
|
|
|
|
- bugfix in MapP2(), data offset was wrong and real size of module
|
2024-03-19 22:24:30 +01:00
|
|
|
|
was zero
|
|
|
|
|
- bugfix in MapBS(), wrong pointer in mirrored data page
|
|
|
|
|
- bugfix in MapROM(), wrong pointer in mirrored data page
|
|
|
|
|
- bugfix in MapP0(), MapP1(), MapP2(), MapBS(), Config(), Uncnfg(),
|
|
|
|
|
mapped address area begin and end on a mapping size boundary
|
|
|
|
|
- bugfix in Map(), the access priority of CE1 and CE2 was wrong
|
|
|
|
|
(SX: port1<->port2, GX: port1<->bank select)
|
|
|
|
|
- bugfix in Uncnfg(), the unconfig priority of CE1 and CE2 was wrong
|
|
|
|
|
(SX: port1<->port2, GX: port1<->bank select)
|
|
|
|
|
- Map(), size optimized implementation
|
|
|
|
|
- Config(), size optimized implementation
|
|
|
|
|
- Uncnfg(), size optimized implementation
|
|
|
|
|
- C_Eq_Id(), size optimized implementation
|
|
|
|
|
|
|
|
|
|
OPCODES.H
|
|
|
|
|
- insert key slow down in A=IN and C=IN
|
|
|
|
|
|
|
|
|
|
RESOURCE.H
|
|
|
|
|
- added ID_STACK_COPY and ID_STACK_PASTE
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Service Pack 4 for Emu48 Version 1.0
|
|
|
|
|
|
|
|
|
|
EMU48.C
|
|
|
|
|
- added code for port1 disable
|
|
|
|
|
- changed the default box setting of "Accurate Timer" in checked
|
|
|
|
|
|
|
|
|
|
EMU48.RC
|
|
|
|
|
- added item "Port 1 is Plugged"
|
|
|
|
|
- changed version and copyright
|
|
|
|
|
|
|
|
|
|
KEYBOARD.C
|
|
|
|
|
- bugfixes in 1 ms keyboard interrupt handler, keyboard interrupts
|
|
|
|
|
are generated at one of the following conditions: pressing the ON
|
2024-03-19 22:25:45 +01:00
|
|
|
|
key (non maskable), pressing a key detected by the 1 ms keyboard
|
|
|
|
|
scan when enabled (maskable), detect a key after an OUT command
|
2024-03-19 22:24:30 +01:00
|
|
|
|
or after the RSI command when a bit in the IN register is set
|
|
|
|
|
|
|
|
|
|
MOPS.C
|
|
|
|
|
- bugfix in WriteIO(), TIMER1 was loaded with the current value
|
|
|
|
|
|
|
|
|
|
OPCODES.H
|
|
|
|
|
- bugfix in INTON and INTOFF command, they aren't able to generate a
|
|
|
|
|
keyboard interrupt
|
2024-03-19 22:36:03 +01:00
|
|
|
|
- bugfix in RSI command, call interrupt routine or set interrupt
|
2024-03-19 22:24:30 +01:00
|
|
|
|
pending flag if a bit of the IN register is high
|
|
|
|
|
- RTI command changed, doesn't handle ON key here
|
|
|
|
|
- added InfoMessage for BUSCB command
|
|
|
|
|
|
|
|
|
|
RESOURCE.H
|
|
|
|
|
- added IDC_PORT1EN
|
|
|
|
|
|
|
|
|
|
SERIAL.C
|
|
|
|
|
- bugfix, synchronize threads for receive char
|
|
|
|
|
|
|
|
|
|
TIMER.C
|
|
|
|
|
- changed function CheckT1(), quite similar to V1.0 with minor fixes
|
|
|
|
|
- changed function CheckT2(), minor fixes
|
|
|
|
|
- bugfix in function SetT1(), decrement value after full period,
|
|
|
|
|
don't check for interrupts after setting
|
|
|
|
|
- bugfix in function SetT2(), don't check for interrupts after
|
|
|
|
|
setting
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Service Pack 3 for Emu48 Version 1.0
|
|
|
|
|
|
|
|
|
|
DDESERV.C
|
2024-03-19 23:35:29 +01:00
|
|
|
|
- new module for DDE communication
|
2024-03-19 22:24:30 +01:00
|
|
|
|
|
|
|
|
|
EMU48.C
|
|
|
|
|
- init DDE callback function and name service
|
|
|
|
|
- added section [Serial] in INI-File
|
|
|
|
|
- added combobox update in dialog box handler
|
|
|
|
|
|
|
|
|
|
EMU48.DSP
|
|
|
|
|
- new makefile for MSVC 5.0
|
|
|
|
|
|
|
|
|
|
EMU48.H
|
|
|
|
|
- extern declaration of global variables
|
|
|
|
|
- added function prototypes
|
|
|
|
|
|
|
|
|
|
EMU48.RC
|
|
|
|
|
- added block "Serial"
|
|
|
|
|
- changed version and copyright
|
|
|
|
|
|
|
|
|
|
ENGINE.C
|
|
|
|
|
- bugfix in SetSpeed(), may enable "realspeed" with illegal
|
|
|
|
|
reference counts
|
|
|
|
|
- bugfix in SwitchToState(), switching from "Invalid" or "Sleep"
|
|
|
|
|
state into another, ResumeThread() may called before
|
|
|
|
|
SuspendThread() (unsynchronized threads)
|
|
|
|
|
- added code for serial device
|
|
|
|
|
|
|
|
|
|
FILES.C
|
|
|
|
|
- separated stack writing code from LoadObject() to WriteStack()
|
|
|
|
|
|
|
|
|
|
MOPS.C
|
|
|
|
|
- added global variables
|
|
|
|
|
- changed code in ReadIO() for BAUD, IO CONTROL, RCS, TCS, RBR,
|
|
|
|
|
SREQ?, IR CONTROL for serial support
|
|
|
|
|
- changed code in WriteIO() for BAUD, IOC, TBR, IRC for serial
|
|
|
|
|
support
|
|
|
|
|
|
|
|
|
|
RESOURCE.H
|
|
|
|
|
- added IDC_WIRE and IDC_IR
|
|
|
|
|
|
|
|
|
|
SERIAL.C
|
2024-03-19 23:35:29 +01:00
|
|
|
|
- new module for serial support
|
2024-03-19 22:24:30 +01:00
|
|
|
|
|
|
|
|
|
SERIAL.H
|
|
|
|
|
- new header with serial definitions
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Service Pack 2 for Emu48 Version 1.0
|
|
|
|
|
|
|
|
|
|
DISPLAY.C
|
|
|
|
|
- bugfix in UpdateMainDisplay(), update display even if it's off
|
|
|
|
|
|
|
|
|
|
EMU48.C
|
|
|
|
|
- added section [Emulator] in INI-File
|
|
|
|
|
- added checkbox update in dialog box handler
|
|
|
|
|
|
|
|
|
|
EMU48.H
|
|
|
|
|
- extern declaration of variables
|
|
|
|
|
|
|
|
|
|
EMU48.RC
|
|
|
|
|
- added item "Authentic Calculator Speed"
|
|
|
|
|
- changed version and copyright
|
|
|
|
|
|
|
|
|
|
ENGINE.C
|
|
|
|
|
- added code to slow down emulation
|
|
|
|
|
|
|
|
|
|
RESOURCE.H
|
|
|
|
|
- added IDC_REALSPEED
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Service Pack 1 for Emu48 Version 1.0
|
|
|
|
|
|
|
|
|
|
DISPLAY.C
|
|
|
|
|
- red and blue has been changed in SetLcdColor()
|
|
|
|
|
- use display contrast value from chipset and not the default
|
|
|
|
|
value in CreateLcdBitmap()
|
|
|
|
|
- use semaphores to avoid GDI trouble with NT in
|
|
|
|
|
UpdateMainDisplay(), UpdateMenuDisplay(), WriteToMainDisplay()
|
|
|
|
|
and WriteToMenuDisplay()
|
|
|
|
|
- execute ResizeWindow() only if window exist
|
|
|
|
|
- bugfix in draw part of WriteToMainDisplay()
|
|
|
|
|
|
|
|
|
|
EMU48.C
|
|
|
|
|
- version changed
|
|
|
|
|
- added global variable
|
2024-03-19 22:25:45 +01:00
|
|
|
|
- added semaphore handling to avoid GDI trouble with NT that prevent
|
2024-03-19 22:24:30 +01:00
|
|
|
|
graphic update sometimes
|
|
|
|
|
- added message for right mouse key
|
|
|
|
|
- bugfix of a parameter of GetPrivateProfileString()
|
|
|
|
|
- removed SwitchToState() and KillKML() at end of program
|
|
|
|
|
- eliminated memory leak caused by SetWindowTitle()
|
|
|
|
|
- function OnPaint() may returned without calling EndPaint()
|
|
|
|
|
- execute UpdateWindowStatus() only if window exist
|
|
|
|
|
|
|
|
|
|
EMU48.H
|
|
|
|
|
- extern declaration of global variable
|
|
|
|
|
- added VOID as parameter in function prototypes
|
|
|
|
|
|
|
|
|
|
EMU48.RC
|
|
|
|
|
- added/changed version and copyright
|
|
|
|
|
|
|
|
|
|
EXTERNAL.C
|
|
|
|
|
- bugfix, check if beeper enabled
|
|
|
|
|
- changed beeper emulation, more realistic with Windows NT
|
|
|
|
|
|
|
|
|
|
FILES.C
|
|
|
|
|
- avoid an open handle and adjust file attributes in
|
|
|
|
|
LoadBitmapFile()
|
|
|
|
|
- the WORD to int conversion used in function SetWindowPos()
|
|
|
|
|
failed; windows with negative position data wouldn't pop up with
|
|
|
|
|
NT (NT GDI is 32 bit coded, Windows 95 mostly 16 bit -> the
|
|
|
|
|
failed conversion doesn't matter with Windows 95)
|
|
|
|
|
- bugfix in close file handling of function OpenDocument()
|
2024-03-19 22:36:03 +01:00
|
|
|
|
- InitKML() need chipset for contrast setting in RestoreBackup()
|
2024-03-19 22:24:30 +01:00
|
|
|
|
|
|
|
|
|
KML.C
|
|
|
|
|
- added global variables
|
|
|
|
|
- use semaphores to avoid GDI trouble with NT in DrawButton() and
|
|
|
|
|
DrawAnnunciator()
|
|
|
|
|
- added function ReleaseAllButtons()
|
|
|
|
|
- changed mouse handling for pressing more than one key
|
|
|
|
|
|
|
|
|
|
OPCODES.H
|
|
|
|
|
- added S(X) oscillator cycles for each command
|
|
|
|
|
- bugfix in A=IN and C=IN command to emulate a saturn bug, on real
|
|
|
|
|
machines the assembler commands only work on an even address
|
|
|
|
|
- bugfix in all r=r+CON fs,n and r=r-CON fs,n opcodes to emulate a
|
|
|
|
|
saturn bug, on real machines commands with a single field selector
|
|
|
|
|
cause an overrun to other fields of the register
|
|
|
|
|
- NFdbl() replaced by NFadd()
|
|
|
|
|
- Ndbl() replaced by Nadd()
|
|
|
|
|
|
|
|
|
|
OPS.H
|
|
|
|
|
- NFinc() definition changed
|
|
|
|
|
- NFdec() definition changed
|
|
|
|
|
- NFdbl() definition removed
|
|
|
|
|
- Ndbl() function removed
|
|
|
|
|
- changed implementation of Ninc(), added offset variable
|
|
|
|
|
- changed implementation of Ndec(), added offset variable
|
|
|
|
|
- optimized implementation of Nadd()
|
|
|
|
|
- optimized implementation of Nsub()
|
|
|
|
|
- optimized implementation of Nrsub()
|
|
|
|
|
- optimized implementation of Nnot()
|
|
|
|
|
- optimized implementation of Nneg()
|
|
|
|
|
|
|
|
|
|
TIMER.C
|
|
|
|
|
- added global variables, defines and constants
|
|
|
|
|
- added function SetAccesstime() for setting the correct time
|
|
|
|
|
- bugfix in AbortT2() which prevent updating the clock sometime
|
|
|
|
|
- changed implementation of CheckT1() to correct blink frequency
|
|
|
|
|
of input cursor
|
|
|
|
|
- changed implementation of ReadT2() using a high resolution
|
|
|
|
|
timer to minimize skipping timer2 values
|
|
|
|
|
- bugfix in SetT2(), always check timer2 control register
|
|
|
|
|
- solved a problem with timer2 counts greater than 16.67 min.
|
|
|
|
|
- bugfix of wrong timer1/2 values (unsynchronized threads)
|
|
|
|
|
|
|
|
|
|
TYPES.H
|
|
|
|
|
- use position of the t2_ticks variable for oscillator cycles
|
|
|
|
|
|
|
|
|
|
|
2024-03-19 22:38:33 +01:00
|
|
|
|
(c) by Christoph Gie<69>elink
|