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
|
|
|
|
|
- new modul supporting keyboard macro functions
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
- new modul to create a hand cursor
|
|
|
|
|
|
|
|
|
|
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"
|
|
|
|
|
calculator model dependend here now
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
- new modul with I28F160 flash memory implementation
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
- new modul to handle the INI file
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
- new modul for debugger routines
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
- deleted unused code parts in modul
|
|
|
|
|
|
|
|
|
|
FETCH.C
|
|
|
|
|
- new modul with opcode dispatcher
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
- new modul with opcode implementation
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
- new modul with disassembler
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
- moved static lFreq variable to modul EMU48.C
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
- bugfix in MapP2(), data offset was wrong and real size of modul
|
|
|
|
|
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
|
|
|
|
|
- new modul for DDE communication
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
- new modul for serial support
|
|
|
|
|
|
|
|
|
|
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
|