673 lines
22 KiB
Text
673 lines
22 KiB
Text
|
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
|
|||
|
selectable items, added button to copy selected items to
|
|||
|
clipboard
|
|||
|
- moved function DragAcceptFiles() to WM_CREATE handler
|
|||
|
- added function DragAcceptFiles() to WM_DESTROY handler
|
|||
|
- allow second command line parameter as port2 filename
|
|||
|
- added Critical Section initialisation
|
|||
|
|
|||
|
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
|
|||
|
register (0x119) before reading
|
|||
|
|
|||
|
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
|
|||
|
GX bank switch information (content of FlipFlop) is saved now
|
|||
|
- 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
|
|||
|
register (0x128,0x129) emulation
|
|||
|
- bugfix in function ReadIO(), the TIMER1CTRL and TIMER2CTRL
|
|||
|
register (0x12E,0x12F) must be updated before reading
|
|||
|
- bugfix in function WriteIO(), don't clear the XTRA bit in the
|
|||
|
TIMER1CTRL register (0x12E) while setting
|
|||
|
- bugfix in function WriteIO(), after setting new TIMER1CTRL and
|
|||
|
TIMER2CTRL register (0x12E,0x12F) values the control bit
|
|||
|
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
|
|||
|
- bugfix in function WriteIO(), force new ROM mapping if DA19 in
|
|||
|
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
|
|||
|
- added semaphor handling for key scan
|
|||
|
- 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
|
|||
|
was updated when five nibbles at the DISPADDR register (0x120)
|
|||
|
has been written
|
|||
|
- bugfix in function WriteIO(), the Chipset.loffset variable only
|
|||
|
was updated when three nibbles at the LINEOFFS register (0x125)
|
|||
|
has been written
|
|||
|
- bugfix in function WriteIO(), the Chipset.lcounter variable only
|
|||
|
was updated when the MSB of the LINECOUNT register (0x129) has
|
|||
|
been written
|
|||
|
- bugfix in function WriteIO(), the Chipset.start2 variable only
|
|||
|
was updated when five nibbles at the MENUADDR register (0x130)
|
|||
|
has been written
|
|||
|
- bugfix in function ReadIO(), the LINECOUNT register (0x128-0x129)
|
|||
|
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
|
|||
|
key (non maskeable), pressing a key detected by the 1 ms keyboard
|
|||
|
scan when enabled (maskeable), detect a key after an OUT command
|
|||
|
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
|
|||
|
- bugfix in RSI command, call interrupt routine or set interrupt
|
|||
|
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
|
|||
|
- added semaphor handling to avoid GDI trouble with NT that prevent
|
|||
|
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()
|
|||
|
- InitKML() need chipset for contrast setting in RestoreBackup()
|
|||
|
|
|||
|
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
|