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
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
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()
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
- renamed funtion name ViewStackWnd() to UpdateStackWnd()
|
|
|
|
|
- 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
|
|
|
|
|
- renamed funtion CRC() to UpCRC()
|
|
|
|
|
- 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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(c) by Christoph Gie<69>elink, cgiess@swol.de
|